summaryrefslogtreecommitdiffstats
path: root/src/Core/ConfigManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Core/ConfigManager.cpp')
-rw-r--r--src/Core/ConfigManager.cpp9
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;
}