Browse Source

Fix incompatible plugin not being deleted issue

Unload incompatible plugin before deleting it.

Fix #9377, close #9382
pull/9395/head^2
Christian Grasser 4 years ago committed by Don HO
parent
commit
a55d46d170
No known key found for this signature in database
GPG Key ID: 6C429F1D8D84F46E
  1. 12
      PowerEditor/src/MISC/PluginsManager/PluginsManager.cpp

12
PowerEditor/src/MISC/PluginsManager/PluginsManager.cpp

@ -275,10 +275,14 @@ int PluginsManager::loadPlugin(const TCHAR *pluginFilePath)
s += USERMSG; s += USERMSG;
if (::MessageBox(NULL, s.c_str(), pluginFilePath, MB_YESNO) == IDYES) if (::MessageBox(NULL, s.c_str(), pluginFilePath, MB_YESNO) == IDYES)
{ {
if (pi && pi->_hLib)
{
::FreeLibrary(pi->_hLib);
}
::DeleteFile(pluginFilePath); ::DeleteFile(pluginFilePath);
} }
delete pi; delete pi;
return -1; return -1;
} }
catch (...) catch (...)
{ {
@ -288,10 +292,14 @@ int PluginsManager::loadPlugin(const TCHAR *pluginFilePath)
msg += USERMSG; msg += USERMSG;
if (::MessageBox(NULL, msg.c_str(), pluginFilePath, MB_YESNO) == IDYES) if (::MessageBox(NULL, msg.c_str(), pluginFilePath, MB_YESNO) == IDYES)
{ {
if (pi && pi->_hLib)
{
::FreeLibrary(pi->_hLib);
}
::DeleteFile(pluginFilePath); ::DeleteFile(pluginFilePath);
} }
delete pi; delete pi;
return -1; return -1;
} }
} }

Loading…
Cancel
Save