mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 11:55:49 +00:00
Fix bug 341592 (Crash on first start of Sunbird - "Failed to get the
script language"). r/sr=bz
This commit is contained in:
parent
fc94bde3fd
commit
18afaedffe
@ -94,6 +94,17 @@ nsDOMScriptObjectFactory::nsDOMScriptObjectFactory() :
|
||||
NS_CreateJSRuntime(getter_AddRefs(mLanguageArray[NS_STID_INDEX(nsIProgrammingLanguage::JAVASCRIPT)]));
|
||||
}
|
||||
|
||||
nsDOMScriptObjectFactory::~nsDOMScriptObjectFactory()
|
||||
{
|
||||
PRUint32 i;
|
||||
NS_STID_FOR_INDEX(i) {
|
||||
if (mLanguageArray[i] != nsnull) {
|
||||
mLanguageArray[i]->ShutDown();
|
||||
mLanguageArray[i] = nsnull;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN(nsDOMScriptObjectFactory)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIDOMScriptObjectFactory)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIObserver)
|
||||
@ -285,14 +296,6 @@ nsDOMScriptObjectFactory::Observe(nsISupports *aSubject,
|
||||
nsGlobalWindow::ShutDown();
|
||||
nsDOMClassInfo::ShutDown();
|
||||
|
||||
PRUint32 i;
|
||||
NS_STID_FOR_INDEX(i) {
|
||||
if (mLanguageArray[i] != nsnull) {
|
||||
mLanguageArray[i]->ShutDown();
|
||||
mLanguageArray[i] = nsnull;
|
||||
}
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIExceptionService> xs =
|
||||
do_GetService(NS_EXCEPTIONSERVICE_CONTRACTID);
|
||||
|
||||
@ -305,6 +308,10 @@ nsDOMScriptObjectFactory::Observe(nsISupports *aSubject,
|
||||
xs->UnregisterExceptionProvider(this, NS_ERROR_MODULE_DOM_XPATH);
|
||||
xs->UnregisterExceptionProvider(this, NS_ERROR_MODULE_XPCONNECT);
|
||||
}
|
||||
// Note that we do *not* cleanup the script language references held
|
||||
// in the nsDOMScriptObjectFactory service - they may be required
|
||||
// after this is called, as other things shut down and release their
|
||||
// script object references.
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
|
@ -62,6 +62,7 @@ class nsDOMScriptObjectFactory : public nsIDOMScriptObjectFactory,
|
||||
{
|
||||
public:
|
||||
nsDOMScriptObjectFactory();
|
||||
virtual ~nsDOMScriptObjectFactory();
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user