summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--i18nlangtag/source/languagetag/languagetag.cxx89
-rw-r--r--oox/source/core/xmlfilterbase.cxx2
-rw-r--r--oox/source/drawingml/table/tableproperties.cxx11
-rw-r--r--package/source/xstor/owriteablestream.cxx6
-rw-r--r--package/source/xstor/xstorage.cxx6
-rw-r--r--package/source/zippackage/ZipPackageFolder.cxx6
-rw-r--r--package/source/zippackage/ZipPackageStream.cxx6
-rw-r--r--sal/rtl/bootstrap.cxx10
-rw-r--r--sal/rtl/rtl_process.cxx6
-rw-r--r--sal/textenc/textenc.cxx10
-rw-r--r--sc/source/core/tool/formulaparserpool.cxx8
11 files changed, 67 insertions, 93 deletions
diff --git a/i18nlangtag/source/languagetag/languagetag.cxx b/i18nlangtag/source/languagetag/languagetag.cxx
index 41f23973020f..07b9c6d0a666 100644
--- a/i18nlangtag/source/languagetag/languagetag.cxx
+++ b/i18nlangtag/source/languagetag/languagetag.cxx
@@ -49,24 +49,19 @@ struct myLtError
~myLtError() { if (p) lt_error_unref( p); }
};
-// "static" to be returned as const reference to an empty locale.
-struct theEmptyLocale : public rtl::Static< lang::Locale, theEmptyLocale > {};
}
typedef std::unordered_set< OUString > KnownTagSet;
namespace {
-struct theKnowns : public rtl::Static< KnownTagSet, theKnowns > {};
struct theMutex : public rtl::Static< osl::Mutex, theMutex > {};
}
static const KnownTagSet & getKnowns()
{
- KnownTagSet & rKnowns = theKnowns::get();
- if (rKnowns.empty())
- {
- osl::MutexGuard aGuard( theMutex::get());
- if (rKnowns.empty())
+ static const KnownTagSet theKnowns =
+ []()
{
+ KnownTagSet knownSet;
::std::vector< MsLangId::LanguagetagMapping > aDefined( MsLangId::getDefinedLanguagetags());
for (auto const& elemDefined : aDefined)
{
@@ -76,12 +71,12 @@ static const KnownTagSet & getKnowns()
::std::vector< OUString > aFallbacks( LanguageTag( elemDefined.mnLang).getFallbackStrings( true));
for (auto const& fallback : aFallbacks)
{
- rKnowns.insert(fallback);
+ knownSet.insert(fallback);
}
}
- }
- }
- return rKnowns;
+ return knownSet;
+ }();
+ return theKnowns;
}
@@ -95,10 +90,10 @@ struct compareIgnoreAsciiCaseLess
};
typedef ::std::map< OUString, LanguageTag::ImplPtr, compareIgnoreAsciiCaseLess > MapBcp47;
typedef ::std::map< LanguageType, LanguageTag::ImplPtr > MapLangID;
-struct theMapBcp47 : public rtl::Static< MapBcp47, theMapBcp47 > {};
-struct theMapLangID : public rtl::Static< MapLangID, theMapLangID > {};
-struct theDontKnow : public rtl::Static< LanguageTag::ImplPtr, theDontKnow > {};
-struct theSystemLocale : public rtl::Static< LanguageTag::ImplPtr, theSystemLocale > {};
+MapBcp47 theMapBcp47;
+MapLangID theMapLangID;
+LanguageTag::ImplPtr theDontKnow;
+LanguageTag::ImplPtr theSystemLocale;
}
@@ -598,10 +593,9 @@ LanguageTag::ImplPtr LanguageTagImpl::registerOnTheFly( LanguageType nRegisterID
osl::MutexGuard aGuard( theMutex::get());
- MapBcp47& rMapBcp47 = theMapBcp47::get();
- MapBcp47::const_iterator it( rMapBcp47.find( maBcp47));
+ MapBcp47::const_iterator it( theMapBcp47.find( maBcp47));
bool bOtherImpl = false;
- if (it != rMapBcp47.end())
+ if (it != theMapBcp47.end())
{
SAL_INFO( "i18nlangtag", "LanguageTag::registerOnTheFly: found impl for '" << maBcp47 << "'");
pImpl = (*it).second;
@@ -621,7 +615,7 @@ LanguageTag::ImplPtr LanguageTagImpl::registerOnTheFly( LanguageType nRegisterID
{
SAL_INFO( "i18nlangtag", "LanguageTag::registerOnTheFly: new impl for '" << maBcp47 << "'");
pImpl = std::make_shared<LanguageTagImpl>( *this);
- rMapBcp47.insert( ::std::make_pair( maBcp47, pImpl));
+ theMapBcp47.insert( ::std::make_pair( maBcp47, pImpl));
}
if (!bOtherImpl || !pImpl->mbInitializedLangID)
@@ -634,9 +628,8 @@ LanguageTag::ImplPtr LanguageTagImpl::registerOnTheFly( LanguageType nRegisterID
// different, otherwise we would end up with ambiguous assignments
// of different language tags, for example for the same primary
// LangID with "no", "nb" and "nn".
- const MapLangID& rMapLangID = theMapLangID::get();
- MapLangID::const_iterator itID( rMapLangID.find( nRegisterID));
- if (itID != rMapLangID.end())
+ MapLangID::const_iterator itID( theMapLangID.find( nRegisterID));
+ if (itID != theMapLangID.end())
{
if ((*itID).second->maBcp47 != maBcp47)
{
@@ -667,7 +660,7 @@ LanguageTag::ImplPtr LanguageTagImpl::registerOnTheFly( LanguageType nRegisterID
}
::std::pair< MapLangID::const_iterator, bool > res(
- theMapLangID::get().insert( ::std::make_pair( pImpl->mnLangID, pImpl)));
+ theMapLangID.insert( ::std::make_pair( pImpl->mnLangID, pImpl)));
if (res.second)
{
SAL_INFO( "i18nlangtag", "LanguageTag::registerOnTheFly: cross-inserted 0x"
@@ -686,9 +679,8 @@ LanguageTag::ImplPtr LanguageTagImpl::registerOnTheFly( LanguageType nRegisterID
LanguageTag::ScriptType LanguageTag::getOnTheFlyScriptType( LanguageType nRegisterID )
{
- const MapLangID& rMapLangID = theMapLangID::get();
- MapLangID::const_iterator itID( rMapLangID.find( nRegisterID));
- if (itID != rMapLangID.end())
+ MapLangID::const_iterator itID( theMapLangID.find( nRegisterID));
+ if (itID != theMapLangID.end())
return (*itID).second->getScriptType();
else
return ScriptType::UNKNOWN;
@@ -709,7 +701,7 @@ void LanguageTag::setConfiguredSystemLanguage( LanguageType nLang )
MsLangId::LanguageTagAccess::setConfiguredSystemLanguage( nLang);
// Reset system locale to none and let registerImpl() do the rest to
// initialize a new one.
- theSystemLocale::get().reset();
+ theSystemLocale.reset();
LanguageTag aLanguageTag( LANGUAGE_SYSTEM);
aLanguageTag.registerImpl();
}
@@ -749,7 +741,7 @@ LanguageTag::ImplPtr LanguageTag::registerImpl() const
// and take the system locale shortcut if possible.
if (mbSystemLocale)
{
- pImpl = theSystemLocale::get();
+ pImpl = theSystemLocale;
if (pImpl)
{
#if OSL_DEBUG_LEVEL > 0
@@ -774,10 +766,9 @@ LanguageTag::ImplPtr LanguageTag::registerImpl() const
// Heavy usage of LANGUAGE_DONTKNOW, make it an own Impl for all the
// conversion attempts. At the same time provide a central breakpoint
// to inspect such places.
- LanguageTag::ImplPtr& rDontKnow = theDontKnow::get();
- if (!rDontKnow)
- rDontKnow = std::make_shared<LanguageTagImpl>( *this);
- pImpl = rDontKnow;
+ if (!theDontKnow)
+ theDontKnow = std::make_shared<LanguageTagImpl>( *this);
+ pImpl = theDontKnow;
#if OSL_DEBUG_LEVEL > 0
static size_t nCallsDontKnow = 0;
++nCallsDontKnow;
@@ -788,7 +779,7 @@ LanguageTag::ImplPtr LanguageTag::registerImpl() const
else
{
// A great share are calls for a system equal locale.
- pImpl = theSystemLocale::get();
+ pImpl = theSystemLocale;
if (pImpl && pImpl->mnLangID == mnLangID)
{
#if OSL_DEBUG_LEVEL > 0
@@ -819,7 +810,7 @@ LanguageTag::ImplPtr LanguageTag::registerImpl() const
if (mbInitializedBcp47)
{
// A great share are calls for a system equal locale.
- pImpl = theSystemLocale::get();
+ pImpl = theSystemLocale;
if (pImpl && pImpl->maBcp47 == maBcp47)
{
#if OSL_DEBUG_LEVEL > 0
@@ -852,9 +843,8 @@ LanguageTag::ImplPtr LanguageTag::registerImpl() const
// Prefer LangID map as find+insert needs less comparison work.
if (mbInitializedLangID)
{
- MapLangID& rMap = theMapLangID::get();
- MapLangID::const_iterator it( rMap.find( mnLangID));
- if (it != rMap.end())
+ MapLangID::const_iterator it( theMapLangID.find( mnLangID));
+ if (it != theMapLangID.end())
{
SAL_INFO( "i18nlangtag", "LanguageTag::registerImpl: found impl for 0x" << ::std::hex << mnLangID);
pImpl = (*it).second;
@@ -863,7 +853,7 @@ LanguageTag::ImplPtr LanguageTag::registerImpl() const
{
SAL_INFO( "i18nlangtag", "LanguageTag::registerImpl: new impl for 0x" << ::std::hex << mnLangID);
pImpl = std::make_shared<LanguageTagImpl>( *this);
- rMap.insert( ::std::make_pair( mnLangID, pImpl));
+ theMapLangID.insert( ::std::make_pair( mnLangID, pImpl));
// Try round-trip.
if (!pImpl->mbInitializedLocale)
pImpl->convertLangToLocale();
@@ -874,7 +864,7 @@ LanguageTag::ImplPtr LanguageTag::registerImpl() const
if (!pImpl->mbInitializedBcp47)
pImpl->convertLocaleToBcp47();
::std::pair< MapBcp47::const_iterator, bool > res(
- theMapBcp47::get().insert( ::std::make_pair( pImpl->maBcp47, pImpl)));
+ theMapBcp47.insert( ::std::make_pair( pImpl->maBcp47, pImpl)));
if (res.second)
{
SAL_INFO( "i18nlangtag", "LanguageTag::registerImpl: cross-inserted '" << pImpl->maBcp47 << "' for 0x" << ::std::hex << mnLangID);
@@ -895,9 +885,8 @@ LanguageTag::ImplPtr LanguageTag::registerImpl() const
}
else if (!maBcp47.isEmpty())
{
- MapBcp47& rMap = theMapBcp47::get();
- MapBcp47::const_iterator it( rMap.find( maBcp47));
- if (it != rMap.end())
+ MapBcp47::const_iterator it( theMapBcp47.find( maBcp47));
+ if (it != theMapBcp47.end())
{
SAL_INFO( "i18nlangtag", "LanguageTag::registerImpl: found impl for '" << maBcp47 << "'");
pImpl = (*it).second;
@@ -906,14 +895,14 @@ LanguageTag::ImplPtr LanguageTag::registerImpl() const
{
SAL_INFO( "i18nlangtag", "LanguageTag::registerImpl: new impl for '" << maBcp47 << "'");
pImpl = std::make_shared<LanguageTagImpl>( *this);
- ::std::pair< MapBcp47::iterator, bool > insOrig( rMap.insert( ::std::make_pair( maBcp47, pImpl)));
+ ::std::pair< MapBcp47::iterator, bool > insOrig( theMapBcp47.insert( ::std::make_pair( maBcp47, pImpl)));
// If changed after canonicalize() also add the resulting tag to
// the map.
if (pImpl->synCanonicalize())
{
SAL_INFO( "i18nlangtag", "LanguageTag::registerImpl: canonicalized to '" << pImpl->maBcp47 << "'");
::std::pair< MapBcp47::const_iterator, bool > insCanon(
- rMap.insert( ::std::make_pair( pImpl->maBcp47, pImpl)));
+ theMapBcp47.insert( ::std::make_pair( pImpl->maBcp47, pImpl)));
SAL_INFO( "i18nlangtag", "LanguageTag::registerImpl: " << (insCanon.second ? "" : "not ")
<< "inserted '" << pImpl->maBcp47 << "'");
// If the canonicalized tag already existed (was not inserted)
@@ -957,7 +946,7 @@ LanguageTag::ImplPtr LanguageTag::registerImpl() const
if (bInsert)
{
::std::pair< MapLangID::const_iterator, bool > res(
- theMapLangID::get().insert( ::std::make_pair( pImpl->mnLangID, pImpl)));
+ theMapLangID.insert( ::std::make_pair( pImpl->mnLangID, pImpl)));
if (res.second)
{
SAL_INFO( "i18nlangtag", "LanguageTag::registerImpl: cross-inserted 0x"
@@ -989,7 +978,7 @@ LanguageTag::ImplPtr LanguageTag::registerImpl() const
// above, so add it.
if (mbSystemLocale && mbInitializedLangID)
{
- theSystemLocale::get() = pImpl;
+ theSystemLocale = pImpl;
SAL_INFO( "i18nlangtag", "LanguageTag::registerImpl: added system locale 0x"
<< ::std::hex << pImpl->mnLangID << " '" << pImpl->maBcp47 << "'");
}
@@ -1699,7 +1688,11 @@ OUString LanguageTagImpl::getVariantsFromLangtag()
const css::lang::Locale & LanguageTag::getLocale( bool bResolveSystem ) const
{
if (!bResolveSystem && mbSystemLocale)
- return theEmptyLocale::get();
+ {
+ // "static" to be returned as const reference to an empty locale.
+ static const lang::Locale theEmptyLocale;
+ return theEmptyLocale;
+ }
if (!mbInitializedLocale)
syncVarsFromImpl();
if (!mbInitializedLocale)
diff --git a/oox/source/core/xmlfilterbase.cxx b/oox/source/core/xmlfilterbase.cxx
index b2184e7a97d8..091c5c17e12e 100644
--- a/oox/source/core/xmlfilterbase.cxx
+++ b/oox/source/core/xmlfilterbase.cxx
@@ -156,7 +156,7 @@ struct NamespaceIds: public rtl::StaticWithInit<
void registerNamespaces( FastParser& rParser )
{
- const Sequence< beans::Pair<OUString, sal_Int32> > ids = NamespaceIds::get();
+ const Sequence< beans::Pair<OUString, sal_Int32> >& ids = NamespaceIds::get();
// Filter out duplicates: a namespace can have multiple URLs, think of
// strict vs transitional.
diff --git a/oox/source/drawingml/table/tableproperties.cxx b/oox/source/drawingml/table/tableproperties.cxx
index 69117123dca8..1622b8fc22ca 100644
--- a/oox/source/drawingml/table/tableproperties.cxx
+++ b/oox/source/drawingml/table/tableproperties.cxx
@@ -24,7 +24,6 @@
#include <oox/drawingml/drawingmltypes.hxx>
#include <com/sun/star/table/XTable.hpp>
#include <com/sun/star/table/XMergeableCellRange.hpp>
-#include <rtl/instance.hxx>
#include <oox/core/xmlfilterbase.hxx>
#include "predefined-table-styles.cxx"
@@ -89,11 +88,6 @@ static void MergeCells( const uno::Reference< XTable >& xTable, sal_Int32 nCol,
}
}
-namespace
-{
- struct theDefaultTableStyle : public ::rtl::Static< TableStyle, theDefaultTableStyle > {};
-}
-
const TableStyle& TableProperties::getUsedTableStyle( const ::oox::core::XmlFilterBase& rFilterBase, std::unique_ptr<TableStyle>& rTableStyleToDelete )
{
::oox::core::XmlFilterBase& rBase( const_cast< ::oox::core::XmlFilterBase& >( rFilterBase ) );
@@ -123,7 +117,10 @@ const TableStyle& TableProperties::getUsedTableStyle( const ::oox::core::XmlFilt
}
if ( !pTableStyle )
- return theDefaultTableStyle::get();
+ {
+ static TableStyle theDefaultTableStyle;
+ return theDefaultTableStyle;
+ }
return *pTableStyle;
}
diff --git a/package/source/xstor/owriteablestream.cxx b/package/source/xstor/owriteablestream.cxx
index 5dd673f29171..1b13d49c79db 100644
--- a/package/source/xstor/owriteablestream.cxx
+++ b/package/source/xstor/owriteablestream.cxx
@@ -48,7 +48,6 @@
#include <comphelper/sequence.hxx>
#include <rtl/digest.h>
-#include <rtl/instance.hxx>
#include <tools/diagnose_ex.h>
#include <PackageConstants.hxx>
@@ -1930,11 +1929,10 @@ uno::Sequence< uno::Type > SAL_CALL OWriteStream::getTypes()
return m_pData->m_pTypeCollection->getTypes() ;
}
-namespace { struct lcl_ImplId : public rtl::Static< ::cppu::OImplementationId, lcl_ImplId > {}; }
-
uno::Sequence< sal_Int8 > SAL_CALL OWriteStream::getImplementationId()
{
- return css::uno::Sequence<sal_Int8>();
+ static ::cppu::OImplementationId lcl_ImplId;
+ return lcl_ImplId.getImplementationId();
}
sal_Int32 SAL_CALL OWriteStream::readBytes( uno::Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead )
diff --git a/package/source/xstor/xstorage.cxx b/package/source/xstor/xstorage.cxx
index 24849a6c9062..f7e86b4234ad 100644
--- a/package/source/xstor/xstorage.cxx
+++ b/package/source/xstor/xstorage.cxx
@@ -53,7 +53,6 @@
#include <cppuhelper/queryinterface.hxx>
#include <cppuhelper/typeprovider.hxx>
#include <cppuhelper/exc_hlp.hxx>
-#include <rtl/instance.hxx>
#include <comphelper/storagehelper.hxx>
#include <comphelper/ofopxmlhelper.hxx>
@@ -2174,11 +2173,10 @@ uno::Sequence< uno::Type > SAL_CALL OStorage::getTypes()
return m_pData->m_pTypeCollection->getTypes() ;
}
-namespace { struct lcl_ImplId : public rtl::Static< ::cppu::OImplementationId, lcl_ImplId > {}; }
-
uno::Sequence< sal_Int8 > SAL_CALL OStorage::getImplementationId()
{
- return css::uno::Sequence<sal_Int8>();
+ static ::cppu::OImplementationId lcl_ImplId;
+ return lcl_ImplId.getImplementationId();
}
// XStorage
diff --git a/package/source/zippackage/ZipPackageFolder.cxx b/package/source/zippackage/ZipPackageFolder.cxx
index 3e1deee05592..f3099c5b31f3 100644
--- a/package/source/zippackage/ZipPackageFolder.cxx
+++ b/package/source/zippackage/ZipPackageFolder.cxx
@@ -36,7 +36,6 @@
#include <rtl/digest.h>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <EncryptedDataHeader.hxx>
-#include <rtl/instance.hxx>
using namespace com::sun::star;
using namespace com::sun::star::packages::zip::ZipConstants;
@@ -54,8 +53,6 @@ using namespace cppu;
#define THROW_WHERE ""
#endif
-namespace { struct lcl_CachedImplId : public rtl::Static< cppu::OImplementationId, lcl_CachedImplId > {}; }
-
ZipPackageFolder::ZipPackageFolder( const css::uno::Reference < css::uno::XComponentContext >& xContext,
sal_Int32 nFormat,
bool bAllowRemoveOnInsert )
@@ -153,7 +150,8 @@ void ZipPackageFolder::setChildStreamsTypeByExtension( const beans::StringPair&
css::uno::Sequence < sal_Int8 > ZipPackageFolder::getUnoTunnelId()
{
- return lcl_CachedImplId::get().getImplementationId();
+ static cppu::OImplementationId lcl_CachedImplId;
+ return lcl_CachedImplId.getImplementationId();
}
// XNameContainer
diff --git a/package/source/zippackage/ZipPackageStream.cxx b/package/source/zippackage/ZipPackageStream.cxx
index 19cc550a3e85..2077e2f9a77a 100644
--- a/package/source/zippackage/ZipPackageStream.cxx
+++ b/package/source/zippackage/ZipPackageStream.cxx
@@ -52,7 +52,6 @@
#include <cppuhelper/supportsservice.hxx>
#include <cppuhelper/typeprovider.hxx>
-#include <rtl/instance.hxx>
#include <rtl/random.h>
#include <sal/log.hxx>
#include <tools/diagnose_ex.h>
@@ -75,11 +74,10 @@ using namespace cppu;
#define THROW_WHERE ""
#endif
-namespace { struct lcl_CachedImplId : public rtl::Static< cppu::OImplementationId, lcl_CachedImplId > {}; }
-
css::uno::Sequence < sal_Int8 > ZipPackageStream::getUnoTunnelId()
{
- return lcl_CachedImplId::get().getImplementationId();
+ static cppu::OImplementationId lcl_CachedImplId;
+ return lcl_CachedImplId.getImplementationId();
}
ZipPackageStream::ZipPackageStream ( ZipPackage & rNewPackage,
diff --git a/sal/rtl/bootstrap.cxx b/sal/rtl/bootstrap.cxx
index afb80dcd66cb..52ee7f38d24d 100644
--- a/sal/rtl/bootstrap.cxx
+++ b/sal/rtl/bootstrap.cxx
@@ -146,8 +146,7 @@ static bool find(
namespace
{
- struct rtl_bootstrap_set_vector :
- public rtl::Static< NameValueVector, rtl_bootstrap_set_vector > {};
+ NameValueVector rtl_bootstrap_set_vector;
}
static bool getFromCommandLineArgs(
@@ -551,7 +550,7 @@ bool Bootstrap_Impl::getAmbienceValue(
{
osl::MutexGuard g(osl::Mutex::getGlobalMutex());
- f = find(rtl_bootstrap_set_vector::get(), key, &v);
+ f = find(rtl_bootstrap_set_vector, key, &v);
}
if (f || getFromCommandLineArgs(key, &v) ||
@@ -744,8 +743,7 @@ void SAL_CALL rtl_bootstrap_set (
osl::MutexGuard guard(osl::Mutex::getGlobalMutex());
- NameValueVector& r_rtl_bootstrap_set_vector= rtl_bootstrap_set_vector::get();
- for (auto & item : r_rtl_bootstrap_set_vector)
+ for (auto & item : rtl_bootstrap_set_vector)
{
if (item.sName == name)
{
@@ -756,7 +754,7 @@ void SAL_CALL rtl_bootstrap_set (
SAL_INFO("sal.bootstrap", "explicitly getting: name=" << name << " value=" <<value);
- r_rtl_bootstrap_set_vector.emplace_back(name, value);
+ rtl_bootstrap_set_vector.emplace_back(name, value);
}
void SAL_CALL rtl_bootstrap_expandMacros_from_handle(
diff --git a/sal/rtl/rtl_process.cxx b/sal/rtl/rtl_process.cxx
index 42c24e80074d..76963dc1376b 100644
--- a/sal/rtl/rtl_process.cxx
+++ b/sal/rtl/rtl_process.cxx
@@ -21,7 +21,6 @@
#include <cstring>
-#include <rtl/instance.hxx>
#include <rtl/process.h>
#include <rtl/uuid.h>
#include <sal/types.h>
@@ -46,13 +45,12 @@ private:
sal_uInt8 uuid_[UUID_SIZE];
};
-struct theId: public rtl::Static< Id, theId > {};
-
} // end namespace
void rtl_getGlobalProcessId(sal_uInt8 * pTargetUUID)
{
- theId::get().copy(pTargetUUID);
+ static Id theId;
+ theId.copy(pTargetUUID);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/textenc.cxx b/sal/textenc/textenc.cxx
index b0856f9add1c..1d7279f849a4 100644
--- a/sal/textenc/textenc.cxx
+++ b/sal/textenc/textenc.cxx
@@ -27,7 +27,6 @@
#include <cstdlib>
#include <osl/module.hxx>
-#include <rtl/instance.hxx>
#include <rtl/textenc.h>
#include <rtl/ustring.h>
#include <rtl/ustring.hxx>
@@ -409,10 +408,6 @@ private:
#endif
-struct FullTextEncodingDataSingleton:
- public rtl::Static< FullTextEncodingData, FullTextEncodingDataSingleton >
-{};
-
}
ImplTextEncodingData const *
@@ -431,7 +426,10 @@ Impl_getTextEncodingData(rtl_TextEncoding nEncoding)
case RTL_TEXTENCODING_ISO_8859_1:
return &aImplISO88591TextEncodingData; break;
default:
- return FullTextEncodingDataSingleton::get().get(nEncoding);
+ {
+ static FullTextEncodingData gFullTextEncodingData;
+ return gFullTextEncodingData.get(nEncoding);
+ }
}
}
diff --git a/sc/source/core/tool/formulaparserpool.cxx b/sc/source/core/tool/formulaparserpool.cxx
index 5e50ea96ec4d..94c47fa903e8 100644
--- a/sc/source/core/tool/formulaparserpool.cxx
+++ b/sc/source/core/tool/formulaparserpool.cxx
@@ -23,7 +23,6 @@
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/XSingleComponentFactory.hpp>
#include <com/sun/star/sheet/XFilterFormulaParser.hpp>
-#include <rtl/instance.hxx>
#include <comphelper/processfactory.hxx>
#include <sfx2/objsh.hxx>
#include <document.hxx>
@@ -101,8 +100,6 @@ Reference< XFormulaParser > ScParserFactoryMap::createFormulaParser(
return xParser;
}
-struct ScParserFactorySingleton : public ::rtl::Static< ScParserFactoryMap, ScParserFactorySingleton > {};
-
} // namespace
ScFormulaParserPool::ScFormulaParserPool( const ScDocument& rDoc ) :
@@ -132,9 +129,10 @@ Reference< XFormulaParser > ScFormulaParserPool::getFormulaParser( const OUStrin
// try to create a new parser object
if( SfxObjectShell* pDocShell = mrDoc.GetDocumentShell() ) try
{
+ static ScParserFactoryMap theScParserFactoryMap;
+
Reference< XComponent > xComponent( pDocShell->GetModel(), UNO_QUERY_THROW );
- ScParserFactoryMap& rFactoryMap = ScParserFactorySingleton::get();
- rxParser = rFactoryMap.createFormulaParser( xComponent, rNamespace );
+ rxParser = theScParserFactoryMap.createFormulaParser( xComponent, rNamespace );
}
catch( Exception& )
{