]> git.mxchange.org Git - flightgear.git/commitdiff
fgcommand remove-subsystem: fix double delete/segfault.
authorThomas Geymayer <tomgey@gmail.com>
Thu, 19 Nov 2015 22:17:58 +0000 (23:17 +0100)
committerThomas Geymayer <tomgey@gmail.com>
Thu, 19 Nov 2015 22:17:58 +0000 (23:17 +0100)
src/Main/subsystemFactory.cxx

index bd0d0057f6a4fc085b0ae19da497093ffa786448..aeb61aa56bc42719034c358f931b881eb62ee165 100644 (file)
@@ -202,23 +202,20 @@ do_add_subsystem (const SGPropertyNode * arg)
 static bool do_remove_subsystem(const SGPropertyNode * arg)
 {
   std::string name = arg->getStringValue("subsystem");
-  
+
   SGSubsystem* instance = globals->get_subsystem_mgr()->get_subsystem(name);
   if (!instance) {
     SG_LOG(SG_GENERAL, SG_ALERT, "do_remove_subsystem: unknown subsytem:" << name);
     return false;
   }
-  
+
   // is it safe to always call these? let's assume so!
   instance->shutdown();
   instance->unbind();
 
-  // unplug from the manager
+  // unplug from the manager (this also deletes the instance!)
   globals->get_subsystem_mgr()->remove(name.c_str());
-  
-  // and finally kill off the instance.
-  delete instance;
-  
+
   return true;
 }