Browse Source

Fixes a potential crash during plugin shutdown. (#415)

John 2 years ago
parent
commit
1b1a8823f9
1 changed files with 4 additions and 3 deletions
  1. 4 3
      Source/Core/PluginRegistry.cpp

+ 4 - 3
Source/Core/PluginRegistry.cpp

@@ -44,7 +44,7 @@ PluginRegistry::PluginRegistry()
 void PluginRegistry::RegisterPlugin(Plugin* plugin)
 {
 	int event_classes = plugin->GetEventClasses();
-	
+
 	if (event_classes & Plugin::EVT_BASIC)
 		basic_plugins.push_back(plugin);
 	if (event_classes & Plugin::EVT_DOCUMENT)
@@ -77,8 +77,9 @@ void PluginRegistry::NotifyShutdown()
 {
 	while (!basic_plugins.empty())
 	{
-		basic_plugins.back()->OnShutdown();
-		basic_plugins.pop_back();
+		Plugin* plugin = basic_plugins.back();
+		PluginRegistry::UnregisterPlugin(plugin);
+		plugin->OnShutdown();
 	}
 	document_plugins.clear();
 	element_plugins.clear();