summaryrefslogtreecommitdiffstats
path: root/src/Common/Initializable.cpp
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2008-11-20 00:33:28 +0100
committerMatthias Schiffer <matthias@gamezock.de>2008-11-20 00:33:28 +0100
commit0a1df98c0420e9ac097622f2bddcd73a6488ed52 (patch)
tree65f5eaa940bcf5d8c38b88b4fd369cfee43a4a7f /src/Common/Initializable.cpp
parent854421e2c144ab6454d67beb6640579ad13f1a1f (diff)
downloadmad-0a1df98c0420e9ac097622f2bddcd73a6488ed52.tar
mad-0a1df98c0420e9ac097622f2bddcd73a6488ed52.zip
SingletonPtr hinzugefuegt
Diffstat (limited to 'src/Common/Initializable.cpp')
-rw-r--r--src/Common/Initializable.cpp12
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;
}
}