XPCOMGC
Jump to navigation
Jump to search
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.
- Set up a static checker based on GCC to enforce common invariants
Patch Queue
The XPCOMGC work is currently taking place in mercurial patch queues on top of the ActionMonkey repositories: