Bug 430921 - "chrome mochitest for bug 304188 leaks the world" [p=chris@pearce.org.nz (Chris Pearce [cpearce]) r+sr=peterv a1.9=damons]

git-svn-id: svn://10.0.0.236/trunk@251394 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
reed%reedloden.com 2008-05-08 10:51:41 +00:00
parent 352cf9c49e
commit 3faa6b61f2
2 changed files with 7 additions and 2 deletions

View File

@ -3670,6 +3670,13 @@ nsDocShell::Destroy()
// Fire unload event before we blow anything away.
(void) FirePageHideNotification(PR_TRUE);
// Clear pointers to any detached nsEditorData that's lying
// around in shistory entries. Breaks cycle. See bug 430921.
if (mOSHE)
mOSHE->SetEditorData(nsnull);
if (mLSHE)
mLSHE->SetEditorData(nsnull);
// Note: mContentListener can be null if Init() failed and we're being
// called from the destructor.
if (mContentListener) {

View File

@ -1407,7 +1407,6 @@ nsEditingSession::DetachFromWindow(nsIDOMWindow* aWindow)
if (!mDoneSetup)
return NS_OK;
NS_ASSERTION(mEditorFlags != 0, "mEditorFlags should not be 0");
NS_ASSERTION(mStateMaintainer, "mStateMaintainer should exist.");
// Kill any existing reload timer
@ -1437,7 +1436,6 @@ nsEditingSession::ReattachToWindow(nsIDOMWindow* aWindow)
if (!mDoneSetup)
return NS_OK;
NS_ASSERTION(mEditorFlags != 0, "mEditorFlags should still be valid...");
NS_ASSERTION(mStateMaintainer, "mStateMaintainer should exist.");
// Imitate nsEditorDocShell::MakeEditable() to reattach the