#include "exception.hxx"
#include "subsystem_mgr.hxx"
-#include <simgear/Math/SGMath.hxx>
+#include <simgear/math/SGMath.hxx>
\f
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];
}
}
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
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();
}