Fix for bug 443415 (Name more CC edges). r/sr=jst.

This commit is contained in:
Peter Van der Beken 2008-09-08 20:26:46 +02:00
Родитель 8713c60e0b
Коммит 36d56d6620
5 изменённых файлов: 21 добавлений и 5 удалений

Просмотреть файл

@ -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