summaryrefslogtreecommitdiff
path: root/linguistic/source/spelldsp.cxx
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2021-09-16 11:03:04 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-09-17 10:49:21 +0200
commitdac29c278531d5474289eb54aa03987c4958ac83 (patch)
tree25b32b704b15e1aa89fbd1f6a83d5f25db9169d6 /linguistic/source/spelldsp.cxx
parentfbad565fcb5ee8d20a1a83838e66b43aeb23bfa4 (diff)
speedup toUpperCase when called in parallel
by removing locking from CharClass, which means we need to make it an immutable class Since SharedStringPool in sc/ stores a pointer to the CharClass in use, we have to tweak SvtSysLocale so that the object does not change location. Change-Id: I2c62d354fa542ebc04e755ce5b9b9e2ddff76a64 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122185 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'linguistic/source/spelldsp.cxx')
-rw-r--r--linguistic/source/spelldsp.cxx6
1 files changed, 3 insertions, 3 deletions
diff --git a/linguistic/source/spelldsp.cxx b/linguistic/source/spelldsp.cxx
index dbece3def648..c1b309b00adf 100644
--- a/linguistic/source/spelldsp.cxx
+++ b/linguistic/source/spelldsp.cxx
@@ -813,9 +813,9 @@ void SpellCheckerDispatcher::FlushSpellCache()
void SpellCheckerDispatcher::setCharClass(const LanguageTag& rLanguageTag)
{
- if (!m_pCharClass)
- m_pCharClass.reset( new CharClass(rLanguageTag) );
- m_pCharClass->setLanguageTag(rLanguageTag);
+ if (m_pCharClass && m_pCharClass->getLanguageTag() == rLanguageTag)
+ return;
+ m_pCharClass.reset( new CharClass(rLanguageTag) );
}