diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-09-16 11:03:04 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-09-17 10:49:21 +0200 |
commit | dac29c278531d5474289eb54aa03987c4958ac83 (patch) | |
tree | 25b32b704b15e1aa89fbd1f6a83d5f25db9169d6 /linguistic/source/spelldsp.cxx | |
parent | fbad565fcb5ee8d20a1a83838e66b43aeb23bfa4 (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.cxx | 6 |
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) ); } |