Bug 701423 - Log the id and classes of an element in cycle collector dumps, f=mccr8,r=sicking

This commit is contained in:
Olli Pettay 2012-02-11 13:03:54 +02:00
Родитель ebbd72c144
Коммит 8acc9c253b
1 изменённых файлов: 23 добавлений и 6 удалений

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

@ -4796,14 +4796,31 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INTERNAL(nsGenericElement)
tmp->OwnerDoc()->GetDocumentURI()->GetSpec(uri);
}
if (nsid < ArrayLength(kNSURIs)) {
PR_snprintf(name, sizeof(name), "nsGenericElement%s %s %s", kNSURIs[nsid],
localName.get(), uri.get());
nsAutoString id;
nsIAtom* idAtom = tmp->GetID();
if (idAtom) {
id.AppendLiteral(" id='");
id.Append(nsDependentAtomString(idAtom));
id.AppendLiteral("'");
}
else {
PR_snprintf(name, sizeof(name), "nsGenericElement %s %s",
localName.get(), uri.get());
nsAutoString classes;
const nsAttrValue* classAttrValue = tmp->GetClasses();
if (classAttrValue) {
classes.AppendLiteral(" class='");
nsAutoString classString;
classAttrValue->ToString(classString);
classes.Append(classString);
classes.AppendLiteral("'");
}
const char* nsuri = nsid < ArrayLength(kNSURIs) ? kNSURIs[nsid] : "";
PR_snprintf(name, sizeof(name), "nsGenericElement%s %s%s%s %s",
nsuri,
localName.get(),
NS_ConvertUTF16toUTF8(id).get(),
NS_ConvertUTF16toUTF8(classes).get(),
uri.get());
cb.DescribeRefCountedNode(tmp->mRefCnt.get(), sizeof(nsGenericElement),
name);
}