mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 03:15:11 +00:00
Fix for bug 443415 (Name more CC edges). r/sr=jst.
This commit is contained in:
parent
8713c60e0b
commit
36d56d6620
@ -301,9 +301,13 @@ nsIdentifierMapEntry::~nsIdentifierMapEntry()
|
||||
void
|
||||
nsIdentifierMapEntry::Traverse(nsCycleCollectionTraversalCallback* aCallback)
|
||||
{
|
||||
if (mNameContentList != NAME_NOT_VALID)
|
||||
if (mNameContentList != NAME_NOT_VALID) {
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(*aCallback,
|
||||
"mIdentifierMap mNameContentList");
|
||||
aCallback->NoteXPCOMChild(mNameContentList);
|
||||
}
|
||||
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(*aCallback, "mIdentifierMap mDocAllList");
|
||||
aCallback->NoteXPCOMChild(static_cast<nsIDOMNodeList*>(mDocAllList));
|
||||
}
|
||||
|
||||
@ -1227,6 +1231,7 @@ public:
|
||||
nsCycleCollectionTraversalCallback *mCb;
|
||||
virtual void Visit(nsIContent* aContent)
|
||||
{
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(*mCb, "mLinkMap entry");
|
||||
mCb->NoteXPCOMChild(aContent);
|
||||
}
|
||||
};
|
||||
@ -1236,7 +1241,6 @@ LinkMapTraverser(nsUint32ToContentHashEntry* aEntry, void* userArg)
|
||||
{
|
||||
LinkMapTraversalVisitor visitor;
|
||||
visitor.mCb = static_cast<nsCycleCollectionTraversalCallback*>(userArg);
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(*visitor.mCb, "mLinkMap entry");
|
||||
aEntry->VisitContent(&visitor);
|
||||
return PL_DHASH_NEXT;
|
||||
}
|
||||
|
@ -192,24 +192,28 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsDOMEvent)
|
||||
if (tmp->mEventIsInternal) {
|
||||
cb.NoteXPCOMChild(tmp->mEvent->target);
|
||||
cb.NoteXPCOMChild(tmp->mEvent->currentTarget);
|
||||
cb.NoteXPCOMChild(tmp->mEvent->originalTarget);
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mEvent->target)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mEvent->currentTarget)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mEvent->originalTarget)
|
||||
switch (tmp->mEvent->eventStructType) {
|
||||
case NS_MOUSE_EVENT:
|
||||
case NS_MOUSE_SCROLL_EVENT:
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "mEvent->relatedTarget");
|
||||
cb.NoteXPCOMChild(
|
||||
static_cast<nsMouseEvent_base*>(tmp->mEvent)->relatedTarget);
|
||||
break;
|
||||
case NS_DRAG_EVENT:
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "mEvent->dataTransfer");
|
||||
cb.NoteXPCOMChild(
|
||||
static_cast<nsDragEvent*>(tmp->mEvent)->dataTransfer);
|
||||
break;
|
||||
case NS_XUL_COMMAND_EVENT:
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "mEvent->sourceEvent");
|
||||
cb.NoteXPCOMChild(
|
||||
static_cast<nsXULCommandEvent*>(tmp->mEvent)->sourceEvent);
|
||||
break;
|
||||
case NS_MUTATION_EVENT:
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "mEvent->mRelatedNode");
|
||||
cb.NoteXPCOMChild(
|
||||
static_cast<nsMutationEvent*>(tmp->mEvent)->mRelatedNode);
|
||||
break;
|
||||
|
@ -391,6 +391,7 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE_AMBIGUOUS(nsEventListenerManager, nsIEventListe
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsEventListenerManager)
|
||||
PRUint32 count = tmp->mListeners.Length();
|
||||
for (PRUint32 i = 0; i < count; i++) {
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "mListeners[i] mListener");
|
||||
cb.NoteXPCOMChild(tmp->mListeners.ElementAt(i).mListener.get());
|
||||
}
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
|
@ -312,7 +312,9 @@ TraverseTemplateBuilders(nsISupports* aKey, nsIXULTemplateBuilder* aData,
|
||||
nsCycleCollectionTraversalCallback *cb =
|
||||
static_cast<nsCycleCollectionTraversalCallback*>(aContext);
|
||||
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(*cb, "mTemplateBuilderTable key");
|
||||
cb->NoteXPCOMChild(aKey);
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(*cb, "mTemplateBuilderTable value");
|
||||
cb->NoteXPCOMChild(aData);
|
||||
|
||||
return PL_DHASH_NEXT;
|
||||
@ -324,6 +326,7 @@ TraverseObservers(nsIURI* aKey, nsIObserver* aData, void* aContext)
|
||||
nsCycleCollectionTraversalCallback *cb =
|
||||
static_cast<nsCycleCollectionTraversalCallback*>(aContext);
|
||||
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(*cb, "mOverlayLoadObservers/mPendingOverlayLoadNotifications value");
|
||||
cb->NoteXPCOMChild(aData);
|
||||
|
||||
return PL_DHASH_NEXT;
|
||||
@ -347,6 +350,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(nsXULDocument, nsXMLDocument)
|
||||
|
||||
PRUint32 i, count = tmp->mPrototypes.Length();
|
||||
for (i = 0; i < count; ++i) {
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "mPrototypes[i]");
|
||||
cb.NoteXPCOMChild(static_cast<nsIScriptGlobalObjectOwner*>(tmp->mPrototypes[i]));
|
||||
}
|
||||
|
||||
|
@ -942,6 +942,7 @@ nsXPConnect::Traverse(void *p, nsCycleCollectionTraversalCallback &cb)
|
||||
// will be held alive through the parent of the JSObject of the tearoff.
|
||||
XPCWrappedNativeTearOff *to =
|
||||
(XPCWrappedNativeTearOff*) xpc_GetJSPrivate(obj);
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "xpc_GetJSPrivate(obj)->mNative");
|
||||
cb.NoteXPCOMChild(to->GetNative());
|
||||
}
|
||||
// XXX XPCNativeWrapper seems to be the only class that doesn't hold a
|
||||
@ -952,6 +953,7 @@ nsXPConnect::Traverse(void *p, nsCycleCollectionTraversalCallback &cb)
|
||||
clazz->flags & JSCLASS_PRIVATE_IS_NSISUPPORTS &&
|
||||
!XPCNativeWrapper::IsNativeWrapperClass(clazz))
|
||||
{
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "xpc_GetJSPrivate(obj)");
|
||||
cb.NoteXPCOMChild(static_cast<nsISupports*>(xpc_GetJSPrivate(obj)));
|
||||
}
|
||||
|
||||
@ -960,6 +962,7 @@ nsXPConnect::Traverse(void *p, nsCycleCollectionTraversalCallback &cb)
|
||||
{
|
||||
nsISupports *principal = nsnull;
|
||||
mScopes.Get(obj, &principal);
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "scope prinicpal");
|
||||
cb.NoteXPCOMChild(principal);
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user