include/svl/numformat.hxx | 4 +++- svl/source/numbers/zforlist.cxx | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-)
New commits: commit 661f8785e6727dca1ef23c51ae9ecf4d3da299d3 Author: Noel Grandin <[email protected]> AuthorDate: Fri Sep 17 15:15:54 2021 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Fri Sep 17 21:25:38 2021 +0200 no need to allocate CharClass separately in SvNumberFormatter Change-Id: I79b815567c59702c2d3fe7944bb2f16bacf0e472 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122252 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> diff --git a/include/svl/numformat.hxx b/include/svl/numformat.hxx index 3256adf881b5..a851032ef47c 100644 --- a/include/svl/numformat.hxx +++ b/include/svl/numformat.hxx @@ -24,6 +24,8 @@ #include <i18nlangtag/lang.h> #include <tools/link.hxx> #include <svl/zforlist.hxx> +#include <unotools/charclass.hxx> +#include <optional> class SvNumberFormatterRegistry_Impl; class NfCurrencyTable; @@ -561,7 +563,7 @@ private: std::unique_ptr<SvNumberFormatTable> pFormatTable; // For the UI dialog std::unique_ptr<SvNumberFormatterIndexTable> pMergeTable; // List of indices for merging two formatters - std::unique_ptr<CharClass> pCharClass; // CharacterClassification + std::optional<CharClass> oCharClass; // CharacterClassification OnDemandLocaleDataWrapper xLocaleData; // LocaleData switched between SYSTEM, ENGLISH and other OnDemandTransliterationWrapper xTransliteration; // Transliteration loaded on demand OnDemandCalendarWrapper xCalendar; // Calendar loaded on demand diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx index 077d04867e0f..9c35f99547fc 100644 --- a/svl/source/numbers/zforlist.cxx +++ b/svl/source/numbers/zforlist.cxx @@ -303,7 +303,7 @@ void SvNumberFormatter::ImpConstruct( LanguageType eLang ) nDefaultSystemCurrencyFormat = NUMBERFORMAT_ENTRY_NOT_FOUND; maLanguageTag.reset( eLang ); - pCharClass.reset( new CharClass( m_xContext, maLanguageTag ) ); + oCharClass.emplace( m_xContext, maLanguageTag ); xLocaleData.init( m_xContext, maLanguageTag ); xCalendar.init( m_xContext, maLanguageTag.getLocale() ); xTransliteration.init( m_xContext, eLang ); @@ -338,7 +338,7 @@ void SvNumberFormatter::ChangeIntl(LanguageType eLnge) ActLnge = eLnge; maLanguageTag.reset( eLnge ); - pCharClass.reset( new CharClass( m_xContext, maLanguageTag ) ); + oCharClass.emplace( m_xContext, maLanguageTag ); xLocaleData.changeLocale( maLanguageTag ); xCalendar.changeLocale( maLanguageTag.getLocale() ); xTransliteration.changeLocale( eLnge ); @@ -532,7 +532,7 @@ const ::utl::TransliterationWrapper* SvNumberFormatter::GetTransliteration() con return xTransliteration.get(); } -const CharClass* SvNumberFormatter::GetCharClass() const { return pCharClass.get(); } +const CharClass* SvNumberFormatter::GetCharClass() const { return oCharClass ? &*oCharClass : nullptr; } const LocaleDataWrapper* SvNumberFormatter::GetLocaleData() const { return xLocaleData.get(); } @@ -1846,7 +1846,7 @@ bool SvNumberFormatter::GetPreviewStringGuess( const OUString& sFormatString, eLnge = ActLnge; bool bEnglish = (eLnge == LANGUAGE_ENGLISH_US); - OUString aFormatStringUpper( pCharClass->uppercase( sFormatString ) ); + OUString aFormatStringUpper( oCharClass->uppercase( sFormatString ) ); sal_uInt32 nCLOffset = ImpGenerateCL( eLnge ); sal_uInt32 nKey = ImpIsEntry( aFormatStringUpper, nCLOffset, eLnge ); if ( nKey != NUMBERFORMAT_ENTRY_NOT_FOUND )
