i18nlangtag/source/isolang/mslangid.cxx | 9 +++++++++ 1 file changed, 9 insertions(+)
New commits: commit f1ef9379fd9679775eadeecc598aa8087d09bb77 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Fri May 17 15:59:45 2024 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Sat May 18 12:29:08 2024 +0200 cool#8570 single-element cache in MsLangId::getScriptType this method is hit pretty hard, so try a single element cache Change-Id: I7c9f9285037a181ee24fbdf04cabc15b40a2ff03 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167781 Reviewed-by: Michael Meeks <michael.me...@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> (cherry picked from commit 18102e3d7f832b8d5e445e427b55654f5bfd30b0) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167687 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/i18nlangtag/source/isolang/mslangid.cxx b/i18nlangtag/source/isolang/mslangid.cxx index aa913a7f7ff4..a989fbed75f4 100644 --- a/i18nlangtag/source/isolang/mslangid.cxx +++ b/i18nlangtag/source/isolang/mslangid.cxx @@ -364,6 +364,13 @@ bool MsLangId::needsSequenceChecking( LanguageType nLang ) // static sal_Int16 MsLangId::getScriptType( LanguageType nLang ) { + // single-element cache + static thread_local LanguageType nCachedLang = LANGUAGE_MONGOLIAN_MONGOLIAN_MONGOLIA; + static thread_local sal_Int16 nCachedScript = css::i18n::ScriptType::COMPLEX; + + if (nCachedLang == nLang) + return nCachedScript; + sal_Int16 nScript; // CTL @@ -475,6 +482,8 @@ sal_Int16 MsLangId::getScriptType( LanguageType nLang ) { nScript = css::i18n::ScriptType::LATIN; } + nCachedLang = nLang; + nCachedScript = nScript; return nScript; }