summaryrefslogtreecommitdiff
path: root/unotools/source/config/configmgr.cxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2010-10-11 15:19:05 +0100
committerCaolán McNamara <caolanm@redhat.com>2010-10-12 15:35:11 +0100
commit34ebfb2b61686999065015295dab9f623027e94d (patch)
tree1ba7728b93f9d38750a25cbc3dfb7df9c6fc222d /unotools/source/config/configmgr.cxx
parent2e9987515e5c83353dbe6151cc309289b38a78f6 (diff)
#i112786# make ConfigManager a well-behaved singleton
Diffstat (limited to 'unotools/source/config/configmgr.cxx')
-rw-r--r--unotools/source/config/configmgr.cxx22
1 files changed, 4 insertions, 18 deletions
diff --git a/unotools/source/config/configmgr.cxx b/unotools/source/config/configmgr.cxx
index 0df6d49afe59..562df834d7b2 100644
--- a/unotools/source/config/configmgr.cxx
+++ b/unotools/source/config/configmgr.cxx
@@ -352,28 +352,14 @@ void ConfigManager::StoreConfigItems()
}
}
}
-ConfigManager* ConfigManager::pConfigManager = 0;
/* -----------------------------07.09.00 11:06--------------------------------
---------------------------------------------------------------------------*/
-ConfigManager* ConfigManager::GetConfigManager()
-{
- if(!pConfigManager)
- {
- pConfigManager = new ConfigManager();
- }
- return pConfigManager;
-}
-/* -----------------------------07.09.00 11:06--------------------------------
+struct theConfigManager : public rtl::Static<ConfigManager, theConfigManager> {};
- ---------------------------------------------------------------------------*/
-void ConfigManager::RemoveConfigManager()
+ConfigManager& ConfigManager::GetConfigManager()
{
- if(pConfigManager)
- {
- delete pConfigManager;
- pConfigManager = 0;
- }
+ return theConfigManager::get();
}
/* -----------------------------08.09.00 13:22--------------------------------
@@ -515,7 +501,7 @@ Any ConfigManager::GetDirectConfigProperty(ConfigProperty eProp)
}
Sequence< Any > aArgs(1);
aArgs[0] <<= sPath;
- Reference< XMultiServiceFactory > xCfgProvider = GetConfigManager()->GetConfigurationProvider();
+ Reference< XMultiServiceFactory > xCfgProvider = GetConfigManager().GetConfigurationProvider();
if(!xCfgProvider.is())
return aRet;
Reference< XInterface > xIFace;