diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2021-11-10 18:09:11 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-11-11 15:49:33 +0100 |
commit | 8b98f44b9643bdd873919185a617f530c04203e1 (patch) | |
tree | f89004dc4280029e482404803b021114e3943eaf /i18npool | |
parent | f75974f95f04efef92c2a17eed498d9dd189c7a0 (diff) |
rtl::Static to thread-safe static
Change-Id: I98909614d4a8d4317867036678c7202e28dcf285
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125001
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'i18npool')
-rw-r--r-- | i18npool/source/localedata/localedata.cxx | 12 | ||||
-rw-r--r-- | i18npool/source/transliteration/transliterationImpl.cxx | 5 |
2 files changed, 9 insertions, 8 deletions
diff --git a/i18npool/source/localedata/localedata.cxx b/i18npool/source/localedata/localedata.cxx index 5e8f1dee2f79..4caa7a05176a 100644 --- a/i18npool/source/localedata/localedata.cxx +++ b/i18npool/source/localedata/localedata.cxx @@ -31,7 +31,6 @@ #include <i18nlangtag/languagetag.hxx> #include <sal/log.hxx> #include <osl/diagnose.h> -#include <rtl/instance.hxx> #include <sal/macros.h> namespace com::sun::star::uno { class XComponentContext; } @@ -505,8 +504,11 @@ private: // locking pattern correctly. // usage: lcl_LookupTableHelper & rLookupTable = lcl_LookupTableStatic::get(); // retrieves the singleton lookup table instance -struct lcl_LookupTableStatic : public ::rtl::Static< lcl_LookupTableHelper, lcl_LookupTableStatic > -{}; +lcl_LookupTableHelper& lcl_LookupTableStatic() +{ + static lcl_LookupTableHelper SINGLETON; + return SINGLETON; +} lcl_LookupTableHelper::lcl_LookupTableHelper() { @@ -1439,7 +1441,7 @@ LocaleDataImpl::getOutlineNumberingLevels( const lang::Locale& rLocale ) oslGenericFunction LocaleDataImpl::getFunctionSymbol( const Locale& rLocale, const char* pFunction ) { - lcl_LookupTableHelper & rLookupTable = lcl_LookupTableStatic::get(); + lcl_LookupTableHelper & rLookupTable = lcl_LookupTableStatic(); if (cachedItem && cachedItem->equals(rLocale)) { @@ -1496,7 +1498,7 @@ LocaleDataImpl::getAllInstalledLocaleNames() // Check if the locale is really available and not just in the table, // don't allow fall backs. std::unique_ptr<LocaleDataLookupTableItem> pCachedItem; - if (lcl_LookupTableStatic::get().getFunctionSymbolByName( name, "getLocaleItem", &pCachedItem )) { + if (lcl_LookupTableStatic().getFunctionSymbolByName( name, "getLocaleItem", &pCachedItem )) { if( pCachedItem ) cachedItem = std::move( pCachedItem ); seqRange[nInstalled++] = LanguageTag::convertToLocale( name.replace( cUnder, cHyphen), false); diff --git a/i18npool/source/transliteration/transliterationImpl.cxx b/i18npool/source/transliteration/transliterationImpl.cxx index 54305126c640..09e791c33e71 100644 --- a/i18npool/source/transliteration/transliterationImpl.cxx +++ b/i18npool/source/transliteration/transliterationImpl.cxx @@ -27,7 +27,6 @@ #include <comphelper/sequence.hxx> #include <cppuhelper/supportsservice.hxx> -#include <rtl/instance.hxx> #include <rtl/ustring.hxx> #include <algorithm> @@ -582,13 +581,13 @@ namespace OUString Name; css::uno::Reference< css::i18n::XExtendedTransliteration > Body; }; - class theTransBodyMutex : public rtl::Static<osl::Mutex, theTransBodyMutex> {}; } void TransliterationImpl::loadBody( OUString const &implName, Reference<XExtendedTransliteration>& body ) { assert(!implName.isEmpty()); - ::osl::MutexGuard guard(theTransBodyMutex::get()); + static osl::Mutex transBodyMutex; + ::osl::MutexGuard guard(transBodyMutex); static TransBody lastTransBody; if (implName != lastTransBody.Name) { |