]> git.mxchange.org Git - simgear.git/blobdiff - simgear/structure/subsystem_mgr.cxx
Update simgear config.h version
[simgear.git] / simgear / structure / subsystem_mgr.cxx
index 1b8e18245acf7627b1a802f0bc73fe5d66afe334..ee9c15d1750dab1ab90d5e02b1612f1a4712fa1d 100644 (file)
@@ -5,7 +5,7 @@
 #include "exception.hxx"
 #include "subsystem_mgr.hxx"
 
-#include <simgear/Math/SGMath.hxx>
+#include <simgear/math/SGMath.hxx>
 
 
 \f
@@ -110,10 +110,11 @@ SGSubsystemGroup::SGSubsystemGroup ()
 
 SGSubsystemGroup::~SGSubsystemGroup ()
 {
-    for (unsigned int i = 0; i < _members.size(); i++)
+    // reverse order to prevent order dependency problems
+    for (unsigned int i = _members.size(); i > 0; i--)
     {
-        _members[i]->printTimingStatistics();
-        delete _members[i];
+        _members[i-1]->printTimingStatistics();
+        delete _members[i-1];
     }
 }
 
@@ -148,8 +149,9 @@ SGSubsystemGroup::bind ()
 void
 SGSubsystemGroup::unbind ()
 {
-    for (unsigned int i = 0; i < _members.size(); i++)
-        _members[i]->subsystem->unbind();
+    // reverse order to prevent order dependency problems
+    for (unsigned int i = _members.size(); i > 0; i--)
+       _members[i-1]->subsystem->unbind();
 }
 
 void
@@ -381,7 +383,8 @@ SGSubsystemMgr::bind ()
 void
 SGSubsystemMgr::unbind ()
 {
-    for (int i = 0; i < MAX_GROUPS; i++)
+    // reverse order to prevent order dependency problems
+    for (int i = MAX_GROUPS-1; i >= 0; i--)
         _groups[i].unbind();
 }