mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-16 22:04:36 +00:00
Fix for bug 502055 (XBL leaks). r=smaug, sr=bz.
This commit is contained in:
parent
37cd80d19c
commit
2851ade79b
@ -3985,6 +3985,14 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsGenericElement)
|
||||
slots->mChildrenList = nsnull;
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
nsIDocument *doc;
|
||||
if (!tmp->GetNodeParent() && (doc = tmp->GetOwnerDoc()) &&
|
||||
tmp->HasFlag(NODE_MAY_BE_IN_BINDING_MNGR)) {
|
||||
doc->BindingManager()->ChangeDocumentFor(tmp, doc, nsnull);
|
||||
}
|
||||
}
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsGenericElement)
|
||||
|
@ -401,6 +401,7 @@ DocumentInfoHashtableTraverser(nsIURI* key,
|
||||
{
|
||||
nsCycleCollectionTraversalCallback *cb =
|
||||
static_cast<nsCycleCollectionTraversalCallback*>(userArg);
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(*cb, "mDocumentTable value");
|
||||
cb->NoteXPCOMChild(di);
|
||||
return PL_DHASH_NEXT;
|
||||
}
|
||||
@ -412,6 +413,7 @@ LoadingDocHashtableTraverser(nsIURI* key,
|
||||
{
|
||||
nsCycleCollectionTraversalCallback *cb =
|
||||
static_cast<nsCycleCollectionTraversalCallback*>(userArg);
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(*cb, "mLoadingDocTable value");
|
||||
cb->NoteXPCOMChild(sl);
|
||||
return PL_DHASH_NEXT;
|
||||
}
|
||||
@ -1610,6 +1612,19 @@ nsBindingManager::DropDocumentReference()
|
||||
if (mProcessAttachedQueueEvent) {
|
||||
mProcessAttachedQueueEvent->Revoke();
|
||||
}
|
||||
|
||||
if (mContentListTable.ops)
|
||||
PL_DHashTableFinish(&(mContentListTable));
|
||||
mContentListTable.ops = nsnull;
|
||||
|
||||
if (mAnonymousNodesTable.ops)
|
||||
PL_DHashTableFinish(&(mAnonymousNodesTable));
|
||||
mAnonymousNodesTable.ops = nsnull;
|
||||
|
||||
if (mInsertionParentTable.ops)
|
||||
PL_DHashTableFinish(&(mInsertionParentTable));
|
||||
mInsertionParentTable.ops = nsnull;
|
||||
|
||||
mDocument = nsnull;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user