summaryrefslogtreecommitdiff
path: root/i18npool
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2021-11-10 18:09:11 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-11-11 15:49:33 +0100
commit8b98f44b9643bdd873919185a617f530c04203e1 (patch)
treef89004dc4280029e482404803b021114e3943eaf /i18npool
parentf75974f95f04efef92c2a17eed498d9dd189c7a0 (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.cxx12
-rw-r--r--i18npool/source/transliteration/transliterationImpl.cxx5
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)
{