diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2008-11-20 00:33:28 +0100 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2008-11-20 00:33:28 +0100 |
commit | 0a1df98c0420e9ac097622f2bddcd73a6488ed52 (patch) | |
tree | 65f5eaa940bcf5d8c38b88b4fd369cfee43a4a7f /src/Common/Initializable.cpp | |
parent | 854421e2c144ab6454d67beb6640579ad13f1a1f (diff) | |
download | mad-0a1df98c0420e9ac097622f2bddcd73a6488ed52.tar mad-0a1df98c0420e9ac097622f2bddcd73a6488ed52.zip |
SingletonPtr hinzugefuegt
Diffstat (limited to 'src/Common/Initializable.cpp')
-rw-r--r-- | src/Common/Initializable.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/Common/Initializable.cpp b/src/Common/Initializable.cpp index 9e7a49e..65893a1 100644 --- a/src/Common/Initializable.cpp +++ b/src/Common/Initializable.cpp @@ -28,12 +28,17 @@ namespace Mad { namespace Common { std::stack<Initializable*> Initializable::initializedObjects; - +bool Initializable::logInit = false; void Initializable::init() { if(initialized) return; + if(!logInit) { + logInit = true; + LogManager::get(); + } + if(initializing) { Logger::log(Logger::CRITICAL, "Fatal initialization error: cyclic dependencies."); std::terminate(); @@ -41,9 +46,6 @@ void Initializable::init() { initializing = true; - if(!(LogManager::get()->isInitialized() || LogManager::get()->isInitializing())) - LogManager::get()->init(); - doInit(); Configurable *c = dynamic_cast<Configurable*>(this); @@ -68,6 +70,8 @@ void Initializable::deinit() { initializedObjects.pop(); } + + logInit = false; } } |