XPCOMGC: Difference between revisions
Jump to navigation
Jump to search
(Link up nsCOMPtr rewrite) |
(Link up the patch queues) |
||
| Line 25: | Line 25: | ||
** Initialize and suspend requests around blocking activity | ** Initialize and suspend requests around blocking activity | ||
** Analyze code for deadlock possibilities. | ** Analyze code for deadlock possibilities. | ||
== Patch Queue == | |||
The XPCOMGC work is currently taking place in mercurial patch queues on top of the ActionMonkey repositories: | |||
* http://hg.mozilla.org/users/bsmedberg_mozilla.com/xpcomgc-patches/ | |||
* http://hg.mozilla.org/users/bsmedberg_mozilla.com/xpcomgc-tamarin-patches/ | |||
Revision as of 14:34, 23 October 2007
XPCOMGC is the Mozilla 2 project to convert the XPCOM object model from reference counting to use MMgc garbage collection.
General Info
TODO: collect/format information from the newsgroup discussion.
Tasks
- Add the request model threadsafety to MMgc
- Give MMgc the ability to recognize "inner" pointers to objects as typically used by C++ multiple inheritance bug 388070
- Make the world depend on a common MMgc
- Rewrite XPCOM addref/release handling
- Remove the cycle collector
- Use textual search/replace to remove most calls to NS_ADDREF/NS_RELEASE
- Use automatic finding to identify remaining references for manual cleanup
- Make all COM objects inherit from GCObject
- Rewrite nsCOMPtr+friends to be a lightweight wrapper for GC writebarriers
- Make stack pointers raw pointers
- Fix some COM-holding utility classes:
- nsCOMArray
- hashtables: nsInterfaceHashtable and nsInterfaceHashKey
- Rewrite XPCOM weakrefs to be GCWeakRefs
- And remove those that can be regular GC references
- Identify and deal with multi-threading, especially
- Initialize and suspend requests around blocking activity
- Analyze code for deadlock possibilities.
Patch Queue
The XPCOMGC work is currently taking place in mercurial patch queues on top of the ActionMonkey repositories: