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:
edburns%acm.org
2001-07-14 00:03:17 +00:00
parent 08970ba5c7
commit c870c7ade9
2 changed files with 32 additions and 4 deletions

View File

@@ -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);
}
}

View File

@@ -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);
}
}