bug 368811 xpinstall shutdown crash when EM dialog left open. r/sr=jst
git-svn-id: svn://10.0.0.236/trunk@237625 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
3c0bf67b74
commit
5e5fc0f6d3
@ -323,7 +323,7 @@ void nsXPITriggerInfo::SendStatus(const PRUnichar* URL, PRInt32 status)
|
||||
{
|
||||
nsresult rv;
|
||||
|
||||
if ( mCx && mGlobalWrapper && mCbval )
|
||||
if ( mCx && mGlobalWrapper && !JSVAL_IS_NULL(mCbval) )
|
||||
{
|
||||
// create event and post it
|
||||
nsRefPtr<XPITriggerEvent> event = new XPITriggerEvent();
|
||||
|
||||
@ -126,8 +126,7 @@ nsXPInstallManager::nsXPInstallManager()
|
||||
|
||||
nsXPInstallManager::~nsXPInstallManager()
|
||||
{
|
||||
if (mTriggers)
|
||||
delete mTriggers;
|
||||
NS_ASSERTION(!mTriggers, "Shutdown not called, triggers still alive");
|
||||
}
|
||||
|
||||
|
||||
@ -248,9 +247,9 @@ nsXPInstallManager::InitManager(nsIDOMWindowInternal* aParentWindow, nsXPITrigge
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
mNeedsShutdown = PR_TRUE;
|
||||
mTriggers = aTriggers;
|
||||
mChromeType = aChromeType;
|
||||
mNeedsShutdown = PR_TRUE;
|
||||
|
||||
mParentWindow = aParentWindow;
|
||||
|
||||
@ -916,6 +915,12 @@ void nsXPInstallManager::Shutdown()
|
||||
pos->RemoveObserver(this, XPI_PROGRESS_TOPIC);
|
||||
}
|
||||
|
||||
if (mTriggers)
|
||||
{
|
||||
delete mTriggers;
|
||||
mTriggers = nsnull;
|
||||
}
|
||||
|
||||
NS_RELEASE_THIS();
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user