diff --git a/content/html/content/src/nsHTMLTableElement.cpp b/content/html/content/src/nsHTMLTableElement.cpp index 9c8452a0223b..ed46e599e81d 100644 --- a/content/html/content/src/nsHTMLTableElement.cpp +++ b/content/html/content/src/nsHTMLTableElement.cpp @@ -123,6 +123,7 @@ TableRowsCollection::~TableRowsCollection() NS_IMPL_CYCLE_COLLECTION_CLASS(TableRowsCollection) NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(TableRowsCollection) NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER + NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mOrphanRows) NS_IMPL_CYCLE_COLLECTION_UNLINK_END NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(TableRowsCollection) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR_AMBIGUOUS(mOrphanRows, @@ -344,6 +345,13 @@ nsHTMLTableElement::~nsHTMLTableElement() NS_IMPL_CYCLE_COLLECTION_CLASS(nsHTMLTableElement) +NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(nsHTMLTableElement, nsGenericHTMLElement) + NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mTBodies) + if (tmp->mRows) { + tmp->mRows->ParentDestroyed(); + } + NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mRows) +NS_IMPL_CYCLE_COLLECTION_UNLINK_END NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(nsHTMLTableElement, nsGenericHTMLElement) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR_AMBIGUOUS(mTBodies, diff --git a/content/html/content/src/nsHTMLTableElement.h b/content/html/content/src/nsHTMLTableElement.h index 1f78ba49051d..e48a038fce10 100644 --- a/content/html/content/src/nsHTMLTableElement.h +++ b/content/html/content/src/nsHTMLTableElement.h @@ -91,8 +91,8 @@ public: virtual nsresult AfterSetAttr(PRInt32 aNameSpaceID, nsIAtom* aName, const nsAString* aValue, bool aNotify); - NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED_NO_UNLINK(nsHTMLTableElement, - nsGenericHTMLElement) + NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(nsHTMLTableElement, + nsGenericHTMLElement) nsMappedAttributes* GetAttributesMappedForCell(); already_AddRefed GetTHead() { return GetSection(nsGkAtoms::thead);