diff options
Diffstat (limited to 'src/Core/ConfigManager.cpp')
-rw-r--r-- | src/Core/ConfigManager.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/Core/ConfigManager.cpp b/src/Core/ConfigManager.cpp index 1cb4aa0..e9cc87e 100644 --- a/src/Core/ConfigManager.cpp +++ b/src/Core/ConfigManager.cpp @@ -106,8 +106,13 @@ void ConfigManager::configure() { if(configured) return; - for(std::set<Configurable*, Compare>::iterator c = configurables.begin(); c != configurables.end(); ++c) - (*c)->configure(); + while(!unconfiguredConfigurables.empty()) { + std::set<Configurable*, Compare>::iterator it = unconfiguredConfigurables.begin(); + Configurable *c = *it; + unconfiguredConfigurables.erase(it); + + c->configure(); + } configured = true; } |