diff --git a/src/ModuleManager.cpp b/src/ModuleManager.cpp index df17439c6..16b238d43 100644 --- a/src/ModuleManager.cpp +++ b/src/ModuleManager.cpp @@ -215,6 +215,9 @@ ModuleManager::~ModuleManager() while (iter != mDynModules.end()) { UnloadModule(iter->second); + + mDynModules.erase(iter->first); + iter = mDynModules.begin(); } @@ -481,14 +484,10 @@ void ModuleManager::UnloadModule(ModuleInterface *module) { if (module) { - PluginID modID = PluginManager::GetID(module); - module->Terminate(); delete module; - mDynModules.erase(modID); - if (mLibs.find(module) != mLibs.end()) { mLibs[module]->Unload();