Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Traverse/Unlink analysis of dom/indexedDB/ #4

Open
amccreight opened this issue Jul 25, 2011 · 0 comments
Open

Traverse/Unlink analysis of dom/indexedDB/ #4

amccreight opened this issue Jul 25, 2011 · 0 comments

Comments

@amccreight
Copy link
Owner

I started with analyzing this directory, because Ben knows the cycle collector so I decided it would probably not be very funky, and there was a bug fixed with it for JS_ClearScope.

Subissues:

  • There are a large set of results the analysis finds that have comments like "don't unlink this!" in the Traverse/Unlink functions. I need to come up with some way to deal with this, probably at first with a white list baked into the analysis, and in the long term some kind of attributes in the code itself.
  • The analysis also found that mozilla::dom::indexedDB::IDBDatabase::mOnBlockedListener was not Traverse/Unlinked. Ben said that this field isn't actually needed, and can be removed. This is the first real mistake I have found. I filed Bug 669810 for this, which has now been fixed.
  • There were also some fields that the analysis found that Ben said don't need to be unlinked because they point to
    mozIStorageStatement and mozIStorageConnection, and those classes are not cycle collected. These classes are both abstract, and subclasses of nsISupports, so I'm not sure how we can automatically determine that they are not cycle collected. We can try adding them to a whitelist of non-CCed classes, and maybe confirm that no file declares a subclass of these that is cycle collected.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant