Closed Bug 664452 Opened 14 years ago Closed 14 years ago

Unlink content/xul more

Categories

(Core :: XUL, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: smaug, Assigned: smaug)

References

Details

Attachments

(1 file, 1 obsolete file)

Attached patch patch (obsolete) — Splinter Review
No description provided.
Attachment #539552 - Flags: review?(peterv)
Comment on attachment 539552 [details] [diff] [review] patch Review of attachment 539552 [details] [diff] [review]: ----------------------------------------------------------------- Looks great, except for nsXULDocument::Destroy. ::: content/xul/document/src/nsXULDocument.cpp @@ +636,5 @@ > OnPrototypeLoadDone(PR_TRUE); > } > > +void > +nsXULDocument::Destroy() We should be removing Destroy, not add more to it. Why doesn't the existing unlinking code work here? ::: content/xul/document/src/nsXULPrototypeDocument.cpp @@ +198,5 @@ > nsXULPrototypeElement) > cb.NoteXPCOMChild(static_cast<nsIScriptGlobalObject*>(tmp->mGlobalObject)); > NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_MEMBER(mNodeInfoManager, > nsNodeInfoManager) > + for (PRUint32 i = 0; i < tmp->mPrototypeWaiters.Length(); ++i) { You need to add NS_CYCLE_COLLECTION_NOTE_EDGE_NAME here.
(In reply to comment #1) > > +void > > +nsXULDocument::Destroy() > > We should be removing Destroy, not add more to it. Why doesn't the existing > unlinking code work here? Actually, I think that is a leftover from some earlier state of the patch. I'll re-test.
Attached patch patchSplinter Review
Attachment #539552 - Attachment is obsolete: true
Attachment #539552 - Flags: review?(peterv)
Attachment #542798 - Flags: review?(peterv)
Comment on attachment 542798 [details] [diff] [review] patch Review of attachment 542798 [details] [diff] [review]: ----------------------------------------------------------------- ::: content/xul/document/src/nsXULPrototypeDocument.cpp @@ +200,1 @@ > cb.NoteXPCOMChild(static_cast<nsIScriptGlobalObject*>(tmp->mGlobalObject)); Might be able to use NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR_AMBIGUOUS here? @@ +201,5 @@ > NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_MEMBER(mNodeInfoManager, > nsNodeInfoManager) > + for (PRUint32 i = 0; i < tmp->mPrototypeWaiters.Length(); ++i) { > + NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "mPrototypeWaiters[i]"); > + cb.NoteXPCOMChild(static_cast<nsINode*>(tmp->mPrototypeWaiters[i].get())); Same here? Not sure, so no big deal if you can't.
Attachment #542798 - Flags: review?(peterv) → review+
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: