1
0
Fork 0

since the submodel_mgr subsystem does now also hold references to AI models,

we need to explicitly destroy that here, too, so that it has guaranteed
access to the Nasal subsystem. Otherwise we get a segfault on exit. When
the next subsystem needs this special treatement (radar?), we should
introduce a new subsystem group (in addition to INIT and GENERAL)
This commit is contained in:
mfranz 2007-05-01 09:18:11 +00:00
parent b0c7a401d6
commit 83418376d7

View file

@ -109,9 +109,16 @@ fgExit (int status)
{ {
// remove subsystems first, which need access to other subsystems in their // remove subsystems first, which need access to other subsystems in their
// destructors (e.g. "nasal") // destructors (e.g. "nasal")
SGSubsystem *sub = globals->get_subsystem("ai_model"); SGSubsystem *sub;
sub = globals->get_subsystem("ai_model");
globals->get_subsystem_mgr()->get_group(SGSubsystemMgr::GENERAL)->remove_subsystem("ai_model"); globals->get_subsystem_mgr()->get_group(SGSubsystemMgr::GENERAL)->remove_subsystem("ai_model");
delete sub; delete sub;
sub = globals->get_subsystem("submodel_mgr");
globals->get_subsystem_mgr()->get_group(SGSubsystemMgr::GENERAL)->remove_subsystem("submodel_mgr");
delete sub;
#ifdef OSG_LIBRARY_STATIC #ifdef OSG_LIBRARY_STATIC
osgDB::Registry::instance( true); osgDB::Registry::instance( true);
#endif #endif