Kaydet (Commit) ffdd06c2 authored tarafından Noel Grandin's avatar Noel Grandin

SharedStringPool is always called with a CharClass

Change-Id: Ib2b9963a90a135998b6189fba521bd85f5579cf5
Reviewed-on: https://gerrit.libreoffice.org/58645
Tested-by: Jenkins
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst 59f5f666
......@@ -34,7 +34,7 @@ class SVL_DLLPUBLIC SharedStringPool
SharedStringPool& operator=( const SharedStringPool& ) = delete;
public:
SharedStringPool( const CharClass* pCharClass );
SharedStringPool( const CharClass& rCharClass );
~SharedStringPool();
/**
......
......@@ -1023,7 +1023,7 @@ bool openDialogFormula_nothrow( OUString& _in_out_rFormula
LanguageTag aLangTag(LANGUAGE_SYSTEM);
CharClass aCC(_xContext, aLangTag);
svl::SharedStringPool aStringPool(&aCC);
svl::SharedStringPool aStringPool(aCC);
ScopedVclPtrInstance<FormulaDialog> aDlg(
pParent, xServiceFactory, pFormulaManager,
......
......@@ -134,7 +134,7 @@ private:
};
ScDocument::ScDocument( ScDocumentMode eMode, SfxObjectShell* pDocShell ) :
mpCellStringPool(new svl::SharedStringPool(ScGlobal::pCharClass)),
mpCellStringPool(new svl::SharedStringPool(*ScGlobal::pCharClass)),
mpDocLinkMgr(new sc::DocumentLinkManager(pDocShell)),
mpFormulaGroupCxt(nullptr),
mbFormulaGroupCxtBlockDiscard(false),
......
......@@ -311,7 +311,7 @@ void Test::testSharedString()
void Test::testSharedStringPool()
{
SvtSysLocale aSysLocale;
svl::SharedStringPool aPool(aSysLocale.GetCharClassPtr());
svl::SharedStringPool aPool(*aSysLocale.GetCharClassPtr());
svl::SharedString p1, p2;
p1 = aPool.intern("Andy");
......@@ -344,7 +344,7 @@ void Test::testSharedStringPool()
void Test::testSharedStringPoolPurge()
{
SvtSysLocale aSysLocale;
svl::SharedStringPool aPool(aSysLocale.GetCharClassPtr());
svl::SharedStringPool aPool(*aSysLocale.GetCharClassPtr());
aPool.intern("Andy");
aPool.intern("andy");
aPool.intern("ANDY");
......
......@@ -52,13 +52,13 @@ struct SharedStringPool::Impl
StrHashType maStrPool;
StrHashType maStrPoolUpper;
StrStoreType maStrStore;
const CharClass* mpCharClass;
const CharClass& mrCharClass;
explicit Impl( const CharClass* pCharClass ) : mpCharClass(pCharClass) {}
explicit Impl( const CharClass& rCharClass ) : mrCharClass(rCharClass) {}
};
SharedStringPool::SharedStringPool( const CharClass* pCharClass ) :
mpImpl(new Impl(pCharClass)) {}
SharedStringPool::SharedStringPool( const CharClass& rCharClass ) :
mpImpl(new Impl(rCharClass)) {}
SharedStringPool::~SharedStringPool()
{
......@@ -72,10 +72,6 @@ SharedString SharedStringPool::intern( const OUString& rStr )
rtl_uString* pOrig = aRes.first->pData;
if (!mpImpl->mpCharClass)
// We don't track case insensitive strings.
return SharedString(pOrig, nullptr);
if (!aRes.second)
{
// No new string has been inserted. Return the existing string in the pool.
......@@ -88,7 +84,7 @@ SharedString SharedStringPool::intern( const OUString& rStr )
// This is a new string insertion. Establish mapping to upper-case variant.
OUString aUpper = mpImpl->mpCharClass->uppercase(rStr);
OUString aUpper = mpImpl->mrCharClass.uppercase(rStr);
aRes = findOrInsert(mpImpl->maStrPoolUpper, aUpper);
assert(aRes.first != mpImpl->maStrPoolUpper.end());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment