XPCOMGC: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
m (+link for MMgc)
Line 1: Line 1:
XPCOMGC is the [[Mozilla 2]] project to convert the XPCOM object model from reference counting to use MMgc garbage collection.  
XPCOMGC is the [[Mozilla 2]] project to convert the XPCOM object model from reference counting to use [[mdc:MMgc|MMgc]] garbage collection.  


== General Info ==
== General Info ==

Revision as of 14:38, 14 September 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.