From 7ee146283bce5ab3d0e71afa09b3eefbad6861eb Mon Sep 17 00:00:00 2001 From: Kyle Huey Date: Tue, 1 Apr 2014 11:33:28 +0800 Subject: [PATCH] Bug 989224: Note orphaned FragmentOrElements in the CC log. r=bz --- content/base/src/FragmentOrElement.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/content/base/src/FragmentOrElement.cpp b/content/base/src/FragmentOrElement.cpp index 67d1feee36b4..873a6bf2c82a 100644 --- a/content/base/src/FragmentOrElement.cpp +++ b/content/base/src/FragmentOrElement.cpp @@ -1766,12 +1766,21 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INTERNAL(FragmentOrElement) classes.AppendLiteral("'"); } + nsAutoCString orphan; + if (!tmp->IsInDoc() && + // Ignore xbl:content, which is never in the document and hence always + // appears to be orphaned. + !tmp->NodeInfo()->Equals(nsGkAtoms::content, kNameSpaceID_XBL)) { + orphan.AppendLiteral(" (orphan)"); + } + const char* nsuri = nsid < ArrayLength(kNSURIs) ? kNSURIs[nsid] : ""; - PR_snprintf(name, sizeof(name), "FragmentOrElement%s %s%s%s %s", + PR_snprintf(name, sizeof(name), "FragmentOrElement%s %s%s%s%s %s", nsuri, localName.get(), NS_ConvertUTF16toUTF8(id).get(), NS_ConvertUTF16toUTF8(classes).get(), + orphan.get(), uri.get()); cb.DescribeRefCountedNode(tmp->mRefCnt.get(), name); }