Gecko:SplitWindow: Difference between revisions

no edit summary
No edit summary
 
No edit summary
Line 13: Line 13:
I'm sort of assuming we want to change as little of the current object graph as possible (say we don't want to add another C++ class sitting between nsDocument and nsGlobalWindow).
I'm sort of assuming we want to change as little of the current object graph as possible (say we don't want to add another C++ class sitting between nsDocument and nsGlobalWindow).


GC thoughts: the outer and inner should mark each other as long as the inner is the current inner for the outer.  Once that stops being the case, the inner can't be reached from the outer (so no reason to mark in that direction).  I think we need to keep marking from inner to outer because calling a native method call on the inner needs to end up going to the XPCWrappedNative, hence we need to keep it alive.  I guess this is one problem with the XPCWrappedNative's mFlatJSObject being the outer object...
GC thoughts: the outer and inner should mark each other as long as the inner is the current inner for the outer.  Once that stops being the case, the inner can't be reached from the outer (so no reason to mark in that direction).  I think we need to keep marking from inner to outer because making a native method call on the inner needs to end up going to the XPCWrappedNative, hence we need to keep it alive.  I guess this is one problem with the XPCWrappedNative's mFlatJSObject being the outer object...


--[[User:Bzbarsky|Bzbarsky]] 21:16, 4 Jun 2005 (PDT)
--[[User:Bzbarsky|Bzbarsky]] 21:16, 4 Jun 2005 (PDT)
308

edits