summaryrefslogtreecommitdiff
path: root/linguistic/source
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2021-05-01 08:30:46 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-05-02 10:00:43 +0200
commit86b345a963a64fd9b9a3cab522b3ac2e909977fd (patch)
treeb55be7134aa02c203b0b4eea6afeab3aecfd65a6 /linguistic/source
parentaa38eede9d340cbb11a792ab1ebbe681521a4489 (diff)
tdf#79049 speed up OOXML workbook load (4)
Optimise LocaleDataWrapper for reads by initialising the data we in the constructor, so we don't need any kind of locking Reduces load time from 34s to 28s. Change-Id: I4bd3bddb30b70ba015fe5b1372534f9507762b74 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114960 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'linguistic/source')
-rw-r--r--linguistic/source/misc.cxx9
1 files changed, 4 insertions, 5 deletions
diff --git a/linguistic/source/misc.cxx b/linguistic/source/misc.cxx
index 3e0beddada2d..59214bed4500 100644
--- a/linguistic/source/misc.cxx
+++ b/linguistic/source/misc.cxx
@@ -74,11 +74,10 @@ osl::Mutex & GetLinguMutex()
const LocaleDataWrapper & GetLocaleDataWrapper( LanguageType nLang )
{
- static LocaleDataWrapper aLclDtaWrp( SvtSysLocale().GetLanguageTag() );
-
- if (nLang != aLclDtaWrp.getLoadedLanguageTag().getLanguageType())
- aLclDtaWrp.setLanguageTag( LanguageTag( nLang ) );
- return aLclDtaWrp;
+ static std::unique_ptr<LocaleDataWrapper> xLclDtaWrp;
+ if (!xLclDtaWrp || xLclDtaWrp->getLoadedLanguageTag().getLanguageType() != nLang)
+ xLclDtaWrp.reset(new LocaleDataWrapper(LanguageTag( nLang )));
+ return *xLclDtaWrp;
}
LanguageType LinguLocaleToLanguage( const css::lang::Locale& rLocale )