Index: src/main/cpp/logmanager.cpp
===================================================================
--- src/main/cpp/logmanager.cpp (Revision 1570860)
+++ src/main/cpp/logmanager.cpp (Arbeitskopie)
@@ -49,15 +49,19 @@
IMPLEMENT_LOG4CXX_OBJECT(DefaultRepositorySelector)
void * LogManager::guard = 0;
+spi::RepositorySelectorPtr LogManager::repoSelector(LogManager::getDefaultRepositorySelector());
-RepositorySelectorPtr& LogManager::getRepositorySelector() {
+RepositorySelectorPtr LogManager::getDefaultRepositorySelector() {
//
// call to initialize APR and trigger "start" of logging clock
//
APRInitializer::initialize();
- static spi::RepositorySelectorPtr selector;
+
+ LoggerRepositoryPtr hierarchy(new Hierarchy());
+ RepositorySelectorPtr selector(new DefaultRepositorySelector(hierarchy));
+
return selector;
}
@@ -75,7 +79,7 @@
}
LogManager::guard = guard1;
- LogManager::getRepositorySelector() = selector;
+ LogManager::repoSelector = selector;
}
@@ -82,14 +86,7 @@
LoggerRepositoryPtr& LogManager::getLoggerRepository()
{
- if (getRepositorySelector() == 0)
- {
- LoggerRepositoryPtr hierarchy(new Hierarchy());
- RepositorySelectorPtr selector(new DefaultRepositorySelector(hierarchy));
- getRepositorySelector() = selector;
- }
-
- return getRepositorySelector()->getLoggerRepository();
+ return LogManager::repoSelector->getLoggerRepository();
}
LoggerPtr LogManager::getRootLogger()
Index: src/main/include/log4cxx/logmanager.h
===================================================================
--- src/main/include/log4cxx/logmanager.h (Revision 1570860)
+++ src/main/include/log4cxx/logmanager.h (Arbeitskopie)
@@ -40,8 +40,8 @@
/**
* Use the LogManager class to retreive Logger
- * instances or to operate on the current
- * {@link log4cxx::spi::LoggerRepository LoggerRepository}.
+ * instances or to operate on the current
+ * {@link log4cxx::spi::LoggerRepository LoggerRepository}.
* When the LogManager class is loaded
* into memory the default initialization procedure is inititated.
*/
@@ -49,7 +49,8 @@
{
private:
static void * guard;
- static spi::RepositorySelectorPtr& getRepositorySelector();
+ static spi::RepositorySelectorPtr repoSelector;
+ static spi::RepositorySelectorPtr getDefaultRepositorySelector();
public:
/**