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 ...@@ -34,7 +34,7 @@ class SVL_DLLPUBLIC SharedStringPool
SharedStringPool& operator=( const SharedStringPool& ) = delete; SharedStringPool& operator=( const SharedStringPool& ) = delete;
public: public:
SharedStringPool( const CharClass* pCharClass ); SharedStringPool( const CharClass& rCharClass );
~SharedStringPool(); ~SharedStringPool();
/** /**
......
...@@ -1023,7 +1023,7 @@ bool openDialogFormula_nothrow( OUString& _in_out_rFormula ...@@ -1023,7 +1023,7 @@ bool openDialogFormula_nothrow( OUString& _in_out_rFormula
LanguageTag aLangTag(LANGUAGE_SYSTEM); LanguageTag aLangTag(LANGUAGE_SYSTEM);
CharClass aCC(_xContext, aLangTag); CharClass aCC(_xContext, aLangTag);
svl::SharedStringPool aStringPool(&aCC); svl::SharedStringPool aStringPool(aCC);
ScopedVclPtrInstance<FormulaDialog> aDlg( ScopedVclPtrInstance<FormulaDialog> aDlg(
pParent, xServiceFactory, pFormulaManager, pParent, xServiceFactory, pFormulaManager,
......
...@@ -134,7 +134,7 @@ private: ...@@ -134,7 +134,7 @@ private:
}; };
ScDocument::ScDocument( ScDocumentMode eMode, SfxObjectShell* pDocShell ) : ScDocument::ScDocument( ScDocumentMode eMode, SfxObjectShell* pDocShell ) :
mpCellStringPool(new svl::SharedStringPool(ScGlobal::pCharClass)), mpCellStringPool(new svl::SharedStringPool(*ScGlobal::pCharClass)),
mpDocLinkMgr(new sc::DocumentLinkManager(pDocShell)), mpDocLinkMgr(new sc::DocumentLinkManager(pDocShell)),
mpFormulaGroupCxt(nullptr), mpFormulaGroupCxt(nullptr),
mbFormulaGroupCxtBlockDiscard(false), mbFormulaGroupCxtBlockDiscard(false),
......
...@@ -311,7 +311,7 @@ void Test::testSharedString() ...@@ -311,7 +311,7 @@ void Test::testSharedString()
void Test::testSharedStringPool() void Test::testSharedStringPool()
{ {
SvtSysLocale aSysLocale; SvtSysLocale aSysLocale;
svl::SharedStringPool aPool(aSysLocale.GetCharClassPtr()); svl::SharedStringPool aPool(*aSysLocale.GetCharClassPtr());
svl::SharedString p1, p2; svl::SharedString p1, p2;
p1 = aPool.intern("Andy"); p1 = aPool.intern("Andy");
...@@ -344,7 +344,7 @@ void Test::testSharedStringPool() ...@@ -344,7 +344,7 @@ void Test::testSharedStringPool()
void Test::testSharedStringPoolPurge() void Test::testSharedStringPoolPurge()
{ {
SvtSysLocale aSysLocale; SvtSysLocale aSysLocale;
svl::SharedStringPool aPool(aSysLocale.GetCharClassPtr()); svl::SharedStringPool aPool(*aSysLocale.GetCharClassPtr());
aPool.intern("Andy"); aPool.intern("Andy");
aPool.intern("andy"); aPool.intern("andy");
aPool.intern("ANDY"); aPool.intern("ANDY");
......
...@@ -52,13 +52,13 @@ struct SharedStringPool::Impl ...@@ -52,13 +52,13 @@ struct SharedStringPool::Impl
StrHashType maStrPool; StrHashType maStrPool;
StrHashType maStrPoolUpper; StrHashType maStrPoolUpper;
StrStoreType maStrStore; 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 ) : SharedStringPool::SharedStringPool( const CharClass& rCharClass ) :
mpImpl(new Impl(pCharClass)) {} mpImpl(new Impl(rCharClass)) {}
SharedStringPool::~SharedStringPool() SharedStringPool::~SharedStringPool()
{ {
...@@ -72,10 +72,6 @@ SharedString SharedStringPool::intern( const OUString& rStr ) ...@@ -72,10 +72,6 @@ SharedString SharedStringPool::intern( const OUString& rStr )
rtl_uString* pOrig = aRes.first->pData; rtl_uString* pOrig = aRes.first->pData;
if (!mpImpl->mpCharClass)
// We don't track case insensitive strings.
return SharedString(pOrig, nullptr);
if (!aRes.second) if (!aRes.second)
{ {
// No new string has been inserted. Return the existing string in the pool. // No new string has been inserted. Return the existing string in the pool.
...@@ -88,7 +84,7 @@ SharedString SharedStringPool::intern( const OUString& rStr ) ...@@ -88,7 +84,7 @@ SharedString SharedStringPool::intern( const OUString& rStr )
// This is a new string insertion. Establish mapping to upper-case variant. // 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); aRes = findOrInsert(mpImpl->maStrPoolUpper, aUpper);
assert(aRes.first != mpImpl->maStrPoolUpper.end()); 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