XPCOMGC: Difference between revisions
Jump to navigation
Jump to search
m (+link for MMgc) |
(Link up nsCOMPtr rewrite) |
||
Line 15: | Line 15: | ||
** Use automatic finding to identify remaining references for manual cleanup | ** Use automatic finding to identify remaining references for manual cleanup | ||
** [[XPCOMGC/GCObject Inheritance|Make all COM objects inherit from GCObject]] | ** [[XPCOMGC/GCObject Inheritance|Make all COM objects inherit from GCObject]] | ||
** Rewrite nsCOMPtr+friends to be a lightweight wrapper for GC writebarriers | ** [[XPCOMGC/nsCOMPtr rewrite|Rewrite nsCOMPtr+friends to be a lightweight wrapper for GC writebarriers]] | ||
** [[XPCOMGC/Stack Pointers|Make stack pointers raw pointers]] | ** [[XPCOMGC/Stack Pointers|Make stack pointers raw pointers]] | ||
** Fix some COM-holding utility classes: | ** Fix some COM-holding utility classes: |
Revision as of 21:17, 4 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.