mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 686342 - Uninitialize the XUL template builder when XPCOM is being destroyed; r=bzbarsky
This commit is contained in:
parent
97e0f80e7f
commit
c28978e1f3
@ -224,6 +224,7 @@ nsXULTemplateBuilder::Uninit(PRBool aIsFinal)
|
||||
{
|
||||
if (mObservedDocument && aIsFinal) {
|
||||
gObserverService->RemoveObserver(this, DOM_WINDOW_DESTROYED_TOPIC);
|
||||
gObserverService->RemoveObserver(this, NS_XPCOM_SHUTDOWN_OBSERVER_ID);
|
||||
mObservedDocument->RemoveObserver(this);
|
||||
mObservedDocument = nsnull;
|
||||
}
|
||||
@ -465,6 +466,8 @@ nsXULTemplateBuilder::Init(nsIContent* aElement)
|
||||
doc->AddObserver(this);
|
||||
|
||||
mObservedDocument = doc;
|
||||
gObserverService->AddObserver(this, NS_XPCOM_SHUTDOWN_OBSERVER_ID,
|
||||
PR_FALSE);
|
||||
gObserverService->AddObserver(this, DOM_WINDOW_DESTROYED_TOPIC,
|
||||
PR_FALSE);
|
||||
}
|
||||
@ -1117,6 +1120,8 @@ nsXULTemplateBuilder::Observe(nsISupports* aSubject,
|
||||
if (doc && doc == mObservedDocument)
|
||||
NodeWillBeDestroyed(doc);
|
||||
}
|
||||
} else if (!strcmp(aTopic, NS_XPCOM_SHUTDOWN_OBSERVER_ID)) {
|
||||
UninitTrue();
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user