bug=88053
r/sr=brendan This bug fix prevents the crash on exit with Java on win32. git-svn-id: svn://10.0.0.236/trunk@99247 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -506,12 +506,26 @@ void nsActivePluginList::stopRunning()
|
||||
if(mFirst == nsnull)
|
||||
return;
|
||||
|
||||
PRBool doCallSetWindowAfterDestroy = PR_FALSE;
|
||||
|
||||
for(nsActivePlugin * p = mFirst; p != nsnull; p = p->mNext)
|
||||
{
|
||||
if(!p->mStopped && p->mInstance)
|
||||
{
|
||||
p->mInstance->SetWindow(nsnull);
|
||||
p->mInstance->Stop();
|
||||
// then determine if the plugin wants Destroy to be called after
|
||||
// Set Window. This is for bug 50547.
|
||||
p->mInstance->GetValue(nsPluginInstanceVariable_CallSetWindowAfterDestroyBool,
|
||||
(void *) &doCallSetWindowAfterDestroy);
|
||||
if (doCallSetWindowAfterDestroy) {
|
||||
p->mInstance->Stop();
|
||||
p->mInstance->Destroy();
|
||||
p->mInstance->SetWindow(nsnull);
|
||||
}
|
||||
else {
|
||||
p->mInstance->SetWindow(nsnull);
|
||||
p->mInstance->Stop();
|
||||
}
|
||||
doCallSetWindowAfterDestroy = PR_FALSE;
|
||||
p->setStopped(PR_TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -506,12 +506,26 @@ void nsActivePluginList::stopRunning()
|
||||
if(mFirst == nsnull)
|
||||
return;
|
||||
|
||||
PRBool doCallSetWindowAfterDestroy = PR_FALSE;
|
||||
|
||||
for(nsActivePlugin * p = mFirst; p != nsnull; p = p->mNext)
|
||||
{
|
||||
if(!p->mStopped && p->mInstance)
|
||||
{
|
||||
p->mInstance->SetWindow(nsnull);
|
||||
p->mInstance->Stop();
|
||||
// then determine if the plugin wants Destroy to be called after
|
||||
// Set Window. This is for bug 50547.
|
||||
p->mInstance->GetValue(nsPluginInstanceVariable_CallSetWindowAfterDestroyBool,
|
||||
(void *) &doCallSetWindowAfterDestroy);
|
||||
if (doCallSetWindowAfterDestroy) {
|
||||
p->mInstance->Stop();
|
||||
p->mInstance->Destroy();
|
||||
p->mInstance->SetWindow(nsnull);
|
||||
}
|
||||
else {
|
||||
p->mInstance->SetWindow(nsnull);
|
||||
p->mInstance->Stop();
|
||||
}
|
||||
doCallSetWindowAfterDestroy = PR_FALSE;
|
||||
p->setStopped(PR_TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user