XPCOMGC: Difference between revisions
Jump to navigation
Jump to search
(Link up the patch queues) |
(→Tasks) |
||
| Line 7: | Line 7: | ||
== Tasks == | == Tasks == | ||
* Add the request model threadsafety to MMgc | * Add the request model threadsafety to MMgc {{bug|395962}} | ||
* Give MMgc the ability to recognize "inner" pointers to objects as typically used by C++ multiple inheritance {{bug|388070}} | * 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 | * Make the world depend on a common MMgc | ||
Revision as of 14:41, 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 bug 395962
- 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: