summaryrefslogtreecommitdiff
path: root/svl/source/misc/svldata.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svl/source/misc/svldata.cxx')
-rw-r--r--svl/source/misc/svldata.cxx45
1 files changed, 20 insertions, 25 deletions
diff --git a/svl/source/misc/svldata.cxx b/svl/source/misc/svldata.cxx
index b76c1c002ce8..c03ee02acb82 100644
--- a/svl/source/misc/svldata.cxx
+++ b/svl/source/misc/svldata.cxx
@@ -34,32 +34,24 @@
#include <tools/shl.hxx>
#include <svl/svldata.hxx>
-namespace unnamed_svl_svldata {}
-using namespace unnamed_svl_svldata;
- // unnamed namespaces don't work well yet
-
-//============================================================================
-namespace unnamed_svl_svldata {
-
-typedef std::map< rtl::OUString, SimpleResMgr * > SimpleResMgrMap;
-
+namespace
+{
+ typedef std::map< rtl::OUString, SimpleResMgr * > SimpleResMgrMap;
}
-//============================================================================
-//
-// ImpSvlData
-//
-//============================================================================
-
-static ImpSvlData* pSvlData = 0;
-
ImpSvlData::~ImpSvlData()
{
- for (SimpleResMgrMap::iterator t
- = static_cast< SimpleResMgrMap * >(m_pThreadsafeRMs)->begin();
- t != static_cast< SimpleResMgrMap * >(m_pThreadsafeRMs)->end(); ++t)
- delete t->second;
- delete static_cast< SimpleResMgrMap * >(m_pThreadsafeRMs);
+ if (m_pThreadsafeRMs)
+ {
+ SimpleResMgrMap *pThreadsafeRMs =
+ static_cast<SimpleResMgrMap*>(m_pThreadsafeRMs);
+ for (SimpleResMgrMap::iterator t = pThreadsafeRMs->begin(),
+ end = pThreadsafeRMs->end(); t != end; ++t)
+ {
+ delete t->second;
+ }
+ delete pThreadsafeRMs;
+ }
}
//============================================================================
@@ -80,13 +72,16 @@ SimpleResMgr* ImpSvlData::GetSimpleRM(const ::com::sun::star::lang::Locale& rLoc
return rResMgr;
}
+namespace
+{
+ class theSvlData : public rtl::Static< ImpSvlData, theSvlData > {};
+}
+
//============================================================================
// static
ImpSvlData & ImpSvlData::GetSvlData()
{
- if (!pSvlData)
- pSvlData= new ImpSvlData;
- return *pSvlData;
+ return theSvlData::get();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */