X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=src%2FMain%2Fglobals.cxx;h=c28c9f5d2f647818ad643dfcd2de1fc69b250c9d;hb=c053de6b4c4c3a9b22648d3c7e798cfd087887c7;hp=93755ced7198f81f0c9f5ac1709ccd0660b04a26;hpb=d39841d2dfdf82e1d590ab331888e3a392d199c6;p=flightgear.git diff --git a/src/Main/globals.cxx b/src/Main/globals.cxx index 93755ced7..c28c9f5d2 100644 --- a/src/Main/globals.cxx +++ b/src/Main/globals.cxx @@ -45,7 +45,6 @@ #include #include #include -#include #include #include #include @@ -149,9 +148,7 @@ FGGlobals::FGGlobals() : dmelist( NULL ), tacanlist( NULL ), carrierlist( NULL ), - channellist( NULL ), - airwaynet( NULL ), - multiplayer_mgr( NULL ) + channellist( NULL ) { simgear::ResourceManager::instance()->addProvider(new AircraftResourceProvider()); } @@ -161,23 +158,23 @@ FGGlobals::FGGlobals() : FGGlobals::~FGGlobals() { delete renderer; + renderer = NULL; + // The AIModels manager performs a number of actions upon // Shutdown that implicitly assume that other subsystems // are still operational (Due to the dynamic allocation and // deallocation of AIModel objects. To ensure we can safely // shut down all subsystems, make sure we take down the // AIModels system first. - subsystem_mgr->get_group(SGSubsystemMgr::GENERAL)->remove_subsystem("ai_model"); - // FGInput (FGInputEvent) and FGDialog calls get_subsystem() in their destructors, - // which is not safe since some subsystem are already deleted but can be referred. - // So these subsystems must be deleted prior to deleting subsystem_mgr unless - // ~SGSubsystemGroup and SGSubsystemMgr::get_subsystem are changed not to refer to - // deleted subsystems. - subsystem_mgr->get_group(SGSubsystemMgr::GENERAL)->remove_subsystem("input"); - subsystem_mgr->get_group(SGSubsystemMgr::GENERAL)->remove_subsystem("gui"); + SGSubsystem* ai = subsystem_mgr->remove("ai_model"); + if (ai) { + ai->unbind(); + delete ai; + } + subsystem_mgr->unbind(); delete subsystem_mgr; - delete event_mgr; + delete time_params; delete mag; delete matlib; @@ -186,10 +183,7 @@ FGGlobals::~FGGlobals() delete ATC_mgr; delete controls; - delete viewmgr; -// delete commands; - delete model_mgr; delete channel_options_list; delete initial_waypoints; delete scenery; @@ -202,8 +196,6 @@ FGGlobals::~FGGlobals() delete tacanlist; delete carrierlist; delete channellist; - delete airwaynet; - delete multiplayer_mgr; soundmgr->unbind(); delete soundmgr;