diff options
author | Noel Grandin <noel@peralex.com> | 2021-05-01 08:30:46 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-05-02 10:00:43 +0200 |
commit | 86b345a963a64fd9b9a3cab522b3ac2e909977fd (patch) | |
tree | b55be7134aa02c203b0b4eea6afeab3aecfd65a6 /linguistic/source | |
parent | aa38eede9d340cbb11a792ab1ebbe681521a4489 (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.cxx | 9 |
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 ) |