[Libreoffice-commits] core.git: Branch 'private/kohei/calc-shared-string' - 3 commits - sc/inc sc/qa sc/source

Kohei Yoshida kohei.yoshida at collabora.com
Tue Oct 8 06:34:31 PDT 2013


 sc/inc/document.hxx                               |    4 +--
 sc/inc/formulagroup.hxx                           |    1 
 sc/qa/unit/ucalc.cxx                              |    4 +--
 sc/source/core/data/column.cxx                    |    6 ++---
 sc/source/core/data/column2.cxx                   |   26 +++++++++++-----------
 sc/source/core/data/column3.cxx                   |   16 ++++++-------
 sc/source/core/data/documen2.cxx                  |    4 +--
 sc/source/core/data/documentimport.cxx            |    4 +--
 sc/source/core/data/validat.cxx                   |    2 -
 sc/source/core/tool/interpr1.cxx                  |    6 ++---
 sc/source/filter/xcl97/XclImpChangeTrack.cxx      |    2 -
 sc/source/filter/xml/XMLDDELinksContext.cxx       |    2 -
 sc/source/filter/xml/XMLTrackedChangesContext.cxx |    2 -
 sc/source/ui/undo/undocell.cxx                    |    2 -
 14 files changed, 40 insertions(+), 41 deletions(-)

New commits:
commit 04071a018b1484838334c018f4c3d75596492a50
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Tue Oct 8 09:33:23 2013 -0400

    Get the string ID's for case insensitive comparisons.
    
    If we ever need to use this for case sensitive comparisons, we'll have to
    find a way to conditionalize it.
    
    Change-Id: Ibb862c4700d2fb660570fc80a80a03eed1d556c3

diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx
index 21ef99f..392a851 100644
--- a/sc/source/core/data/column2.cxx
+++ b/sc/source/core/data/column2.cxx
@@ -2183,7 +2183,7 @@ bool appendStrings(
                 getBlockIterators<sc::string_block>(it, nLenRemain, itData, itDataEnd);
 
                 for (; itData != itDataEnd; ++itData)
-                    rArray.push_back(itData->getData());
+                    rArray.push_back(itData->getDataIgnoreCase());
             }
             break;
             case sc::element_type_edittext:
@@ -2194,7 +2194,7 @@ bool appendStrings(
                 for (; itData != itDataEnd; ++itData)
                 {
                     OUString aStr = ScEditUtil::GetString(**itData, pDoc);
-                    rArray.push_back(rPool.intern(aStr).getData());
+                    rArray.push_back(rPool.intern(aStr).getDataIgnoreCase());
                 }
             }
             break;
@@ -2219,7 +2219,7 @@ bool appendStrings(
                         return false;
                     }
 
-                    rArray.push_back(rPool.intern(aStr).getData());
+                    rArray.push_back(rPool.intern(aStr).getDataIgnoreCase());
                 }
             }
             break;
@@ -2250,7 +2250,7 @@ bool appendStrings(
     return false;
 }
 
-void copyFirstBlock( sc::FormulaGroupContext& rCxt, size_t nLen, const sc::CellStoreType::position_type& rPos )
+void copyFirstStringBlock( sc::FormulaGroupContext& rCxt, size_t nLen, const sc::CellStoreType::position_type& rPos )
 {
     rCxt.maStrArrays.push_back(new sc::FormulaGroupContext::StrArrayType);
     sc::FormulaGroupContext::StrArrayType& rArray = rCxt.maStrArrays.back();
@@ -2259,7 +2259,7 @@ void copyFirstBlock( sc::FormulaGroupContext& rCxt, size_t nLen, const sc::CellS
     svl::SharedString* p = &sc::string_block::at(*rPos.first->data, rPos.second);
     svl::SharedString* pEnd = p + nLen;
     for (; p != pEnd; ++p)
-        rArray.push_back(p->getData());
+        rArray.push_back(p->getDataIgnoreCase());
 }
 
 }
@@ -2370,12 +2370,12 @@ formula::VectorRefArray ScColumn::FetchVectorRefArray( sc::FormulaGroupContext&
             if (nLenRequested <= nLen)
             {
                 // Requested length fits a single block.
-                copyFirstBlock(rCxt, nLenRequested, aPos);
+                copyFirstStringBlock(rCxt, nLenRequested, aPos);
                 sc::FormulaGroupContext::StrArrayType& rArray = rCxt.maStrArrays.back();
                 return formula::VectorRefArray(&rArray[0]);
             }
 
-            copyFirstBlock(rCxt, nLen, aPos);
+            copyFirstStringBlock(rCxt, nLen, aPos);
             sc::FormulaGroupContext::StrArrayType& rArray = rCxt.maStrArrays.back();
 
             // Fill the remaining array with values from the following blocks.
commit f05eaa705a1b77c3975929709637b52b8961fb31
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Tue Oct 8 09:27:27 2013 -0400

    Rename GetCellStringPool() to GetSharedStringPool().
    
    Change-Id: I99d373f7887424bb103cff60d53f5cd8ce337ef7

diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index fc0058d..54fd457 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -853,8 +853,8 @@ public:
      */
     double* GetValueCell( const ScAddress& rPos );
 
-    SC_DLLPUBLIC svl::SharedStringPool& GetCellStringPool();
-    const svl::SharedStringPool& GetCellStringPool() const;
+    SC_DLLPUBLIC svl::SharedStringPool& GetSharedStringPool();
+    const svl::SharedStringPool& GetSharedStringPool() const;
     sal_uIntPtr GetCellStringID( const ScAddress& rPos ) const;
     sal_uIntPtr GetCellStringIDIgnoreCase( const ScAddress& rPos ) const;
 
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index 91afa61..f682bc4 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -502,7 +502,7 @@ void Test::testCellStringPool()
     CPPUNIT_ASSERT_MESSAGE("They must be equal when cases are ignored.", nId1 == nId2);
 
     // Check the string counts after purging. Purging shouldn't remove any strings in this case.
-    svl::SharedStringPool& rPool = m_pDoc->GetCellStringPool();
+    svl::SharedStringPool& rPool = m_pDoc->GetSharedStringPool();
     rPool.purge();
     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(4), rPool.getCount());
     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), rPool.getCountIgnoreCase());
@@ -1475,7 +1475,7 @@ struct PartiallyFilledEmptyMatrix
 
 void Test::testMatrix()
 {
-    svl::SharedStringPool& rPool = m_pDoc->GetCellStringPool();
+    svl::SharedStringPool& rPool = m_pDoc->GetSharedStringPool();
     ScMatrixRef pMat, pMat2;
 
     // First, test the zero matrix type.
diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx
index 4502fe0..bdfb9c5 100644
--- a/sc/source/core/data/column.cxx
+++ b/sc/source/core/data/column.cxx
@@ -1477,7 +1477,7 @@ void ScColumn::CopyStaticToDocument(SCROW nRow1, SCROW nRow2, ScColumn& rDestCol
                 for (; itData != itDataEnd; ++itData)
                 {
                     const EditTextObject& rObj = **itData;
-                    svl::SharedString aSS = pDocument->GetCellStringPool().intern(ScEditUtil::GetString(rObj, pDocument));
+                    svl::SharedString aSS = pDocument->GetSharedStringPool().intern(ScEditUtil::GetString(rObj, pDocument));
                     aConverted.push_back(aSS);
                 }
                 aDestPos.miCellPos = rDestCol.maCells.set(aDestPos.miCellPos, nCurRow, aConverted.begin(), aConverted.end());
@@ -1507,7 +1507,7 @@ void ScColumn::CopyStaticToDocument(SCROW nRow1, SCROW nRow2, ScColumn& rDestCol
                         aDestPos.miCellPos = rDestCol.maCells.set(aDestPos.miCellPos, nRow, rFC.GetValue());
                     else
                     {
-                        svl::SharedString aSS = pDocument->GetCellStringPool().intern(rFC.GetString());
+                        svl::SharedString aSS = pDocument->GetSharedStringPool().intern(rFC.GetString());
                         if (aSS.getData())
                             aDestPos.miCellPos = rDestCol.maCells.set(aDestPos.miCellPos, nRow, aSS);
                     }
@@ -1800,7 +1800,7 @@ class CopyByCloneHandler
             }
             else
             {
-                svl::SharedString aSS = mrDestCol.GetDoc().GetCellStringPool().intern(aStr);
+                svl::SharedString aSS = mrDestCol.GetDoc().GetSharedStringPool().intern(aStr);
                 if (aSS.getData())
                 {
                     maDestPos.miCellPos =
diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx
index 0f13a26..21ef99f 100644
--- a/sc/source/core/data/column2.cxx
+++ b/sc/source/core/data/column2.cxx
@@ -1018,7 +1018,7 @@ protected:
 public:
     void commitStrings()
     {
-        svl::SharedStringPool& rPool = mpDoc->GetCellStringPool();
+        svl::SharedStringPool& rPool = mpDoc->GetSharedStringPool();
         sc::CellStoreType::iterator it = mrCells.begin();
         std::vector<StrEntry>::iterator itStr = maStrEntries.begin(), itStrEnd = maStrEntries.end();
         for (; itStr != itStrEnd; ++itStr)
@@ -1957,7 +1957,7 @@ class FillMatrixHandler
 
 public:
     FillMatrixHandler(ScMatrix& rMat, size_t nMatCol, size_t nTopRow, SCCOL nCol, SCTAB nTab, ScDocument* pDoc) :
-        mrMat(rMat), mnMatCol(nMatCol), mnTopRow(nTopRow), mnCol(nCol), mnTab(nTab), mpDoc(pDoc), mrPool(pDoc->GetCellStringPool()) {}
+        mrMat(rMat), mnMatCol(nMatCol), mnTopRow(nTopRow), mnCol(nCol), mnTab(nTab), mpDoc(pDoc), mrPool(pDoc->GetSharedStringPool()) {}
 
     void operator() (const sc::CellStoreType::value_type& node, size_t nOffset, size_t nDataSize)
     {
@@ -2171,7 +2171,7 @@ bool appendStrings(
     size_t nLen, sc::CellStoreType::iterator it, const sc::CellStoreType::iterator& itEnd)
 {
     size_t nLenRemain = nLen;
-    svl::SharedStringPool& rPool = pDoc->GetCellStringPool();
+    svl::SharedStringPool& rPool = pDoc->GetSharedStringPool();
 
     for (; it != itEnd; ++it)
     {
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index 2597217..0ac951a 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -1454,7 +1454,7 @@ bool ScColumn::ParseString(
     else
         cFirstChar = 0; // Text
 
-    svl::SharedStringPool& rPool = pDocument->GetCellStringPool();
+    svl::SharedStringPool& rPool = pDocument->GetSharedStringPool();
 
     if ( cFirstChar == '=' )
     {
@@ -1606,7 +1606,7 @@ bool ScColumn::SetString( SCROW nRow, SCTAB nTabP, const String& rString,
 
 void ScColumn::SetEditText( SCROW nRow, EditTextObject* pEditText )
 {
-    pEditText->NormalizeString(pDocument->GetCellStringPool());
+    pEditText->NormalizeString(pDocument->GetSharedStringPool());
     sc::CellStoreType::iterator it = GetPositionToInsert(nRow);
     maCells.set(it, nRow, pEditText);
     maCellTextAttrs.set(nRow, sc::CellTextAttr());
@@ -1617,7 +1617,7 @@ void ScColumn::SetEditText( SCROW nRow, EditTextObject* pEditText )
 
 void ScColumn::SetEditText( sc::ColumnBlockPosition& rBlockPos, SCROW nRow, EditTextObject* pEditText )
 {
-    pEditText->NormalizeString(pDocument->GetCellStringPool());
+    pEditText->NormalizeString(pDocument->GetSharedStringPool());
     rBlockPos.miCellPos = GetPositionToInsert(rBlockPos.miCellPos, nRow);
     rBlockPos.miCellPos = maCells.set(rBlockPos.miCellPos, nRow, pEditText);
     rBlockPos.miCellTextAttrPos = maCellTextAttrs.set(
@@ -1751,7 +1751,7 @@ sal_uIntPtr ScColumn::GetCellStringID( SCROW nRow ) const
         {
             std::vector<sal_uIntPtr> aIDs;
             const EditTextObject* pObj = sc::edittext_block::at(*aPos.first->data, aPos.second);
-            pObj->GetStringIDs(pDocument->GetCellStringPool(), aIDs);
+            pObj->GetStringIDs(pDocument->GetSharedStringPool(), aIDs);
             if (aIDs.size() != 1)
                 // We don't handle multiline content for now.
                 return 0;
@@ -1780,7 +1780,7 @@ sal_uIntPtr ScColumn::GetCellStringIDIgnoreCase( SCROW nRow ) const
         {
             std::vector<sal_uIntPtr> aIDs;
             const EditTextObject* pObj = sc::edittext_block::at(*aPos.first->data, aPos.second);
-            pObj->GetStringIDsIgnoreCase(pDocument->GetCellStringPool(), aIDs);
+            pObj->GetStringIDsIgnoreCase(pDocument->GetSharedStringPool(), aIDs);
             if (aIDs.size() != 1)
                 // We don't handle multiline content for now.
                 return 0;
@@ -2111,7 +2111,7 @@ class FormulaToValueHandler
 
 public:
 
-    FormulaToValueHandler(ScDocument& rDoc) : mrStrPool(rDoc.GetCellStringPool()) {}
+    FormulaToValueHandler(ScDocument& rDoc) : mrStrPool(rDoc.GetSharedStringPool()) {}
 
     void operator() (size_t nRow, const ScFormulaCell* p)
     {
@@ -2195,7 +2195,7 @@ void ScColumn::SetRawString( SCROW nRow, const OUString& rStr, bool bBroadcast )
     if (!ValidRow(nRow))
         return;
 
-    svl::SharedString aSS = pDocument->GetCellStringPool().intern(rStr);
+    svl::SharedString aSS = pDocument->GetSharedStringPool().intern(rStr);
     if (!aSS.getData())
         return;
 
@@ -2219,7 +2219,7 @@ void ScColumn::SetRawString( SCROW nRow, const svl::SharedString& rStr, bool bBr
 void ScColumn::SetRawString(
     sc::ColumnBlockPosition& rBlockPos, SCROW nRow, const OUString& rStr, bool bBroadcast )
 {
-    svl::SharedString aSS = pDocument->GetCellStringPool().intern(rStr);
+    svl::SharedString aSS = pDocument->GetSharedStringPool().intern(rStr);
     if (!aSS.getData())
         return;
 
diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx
index 0fb6755..9a7a0ec 100644
--- a/sc/source/core/data/documen2.cxx
+++ b/sc/source/core/data/documen2.cxx
@@ -600,12 +600,12 @@ ScRefCellValue ScDocument::GetRefCellValue( const ScAddress& rPos )
     return maTabs[rPos.Tab()]->GetRefCellValue(rPos.Col(), rPos.Row());
 }
 
-svl::SharedStringPool& ScDocument::GetCellStringPool()
+svl::SharedStringPool& ScDocument::GetSharedStringPool()
 {
     return *mpCellStringPool;
 }
 
-const svl::SharedStringPool& ScDocument::GetCellStringPool() const
+const svl::SharedStringPool& ScDocument::GetSharedStringPool() const
 {
     return *mpCellStringPool;
 }
diff --git a/sc/source/core/data/documentimport.cxx b/sc/source/core/data/documentimport.cxx
index 334b2f5..03f5842 100644
--- a/sc/source/core/data/documentimport.cxx
+++ b/sc/source/core/data/documentimport.cxx
@@ -150,7 +150,7 @@ void ScDocumentImport::setStringCell(const ScAddress& rPos, const OUString& rStr
     if (!pBlockPos)
         return;
 
-    svl::SharedString aSS = mpImpl->mrDoc.GetCellStringPool().intern(rStr);
+    svl::SharedString aSS = mpImpl->mrDoc.GetSharedStringPool().intern(rStr);
     if (!aSS.getData())
         return;
 
@@ -170,7 +170,7 @@ void ScDocumentImport::setEditCell(const ScAddress& rPos, EditTextObject* pEditT
     if (!pBlockPos)
         return;
 
-    pEditText->NormalizeString(mpImpl->mrDoc.GetCellStringPool());
+    pEditText->NormalizeString(mpImpl->mrDoc.GetSharedStringPool());
     sc::CellStoreType& rCells = pTab->aCol[rPos.Col()].maCells;
     pBlockPos->miCellPos = rCells.set(pBlockPos->miCellPos, rPos.Row(), pEditText);
 }
diff --git a/sc/source/core/data/validat.cxx b/sc/source/core/data/validat.cxx
index 07a54f9..c27b25c 100644
--- a/sc/source/core/data/validat.cxx
+++ b/sc/source/core/data/validat.cxx
@@ -462,7 +462,7 @@ bool ScValidationData::IsDataValid(
         }
         else
         {
-            svl::SharedString aSS = mpDoc->GetCellStringPool().intern(rTest);
+            svl::SharedString aSS = mpDoc->GetSharedStringPool().intern(rTest);
             ScRefCellValue aTmpCell(&aSS);
             bRet = IsDataValid(aTmpCell, rPos);
         }
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index f4c2d4f..c621de3 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -6763,7 +6763,7 @@ bool ScInterpreter::FillEntry(ScQueryEntry& rEntry)
             const OUString& sStr = GetString();
             rItem.meType = ScQueryEntry::ByString;
             rItem.maString = sStr;
-            rItem.mnStrId = pDok->GetCellStringPool().getIdentifierIgnoreCase(rItem.maString);
+            rItem.mnStrId = pDok->GetSharedStringPool().getIdentifierIgnoreCase(rItem.maString);
         }
         break;
         case svDoubleRef :
@@ -6788,7 +6788,7 @@ bool ScInterpreter::FillEntry(ScQueryEntry& rEntry)
                 GetCellString(aStr, aCell);
                 rItem.meType = ScQueryEntry::ByString;
                 rItem.maString = aStr;
-                rItem.mnStrId = pDok->GetCellStringPool().getIdentifierIgnoreCase(rItem.maString);
+                rItem.mnStrId = pDok->GetSharedStringPool().getIdentifierIgnoreCase(rItem.maString);
             }
         }
         break;
@@ -6797,7 +6797,7 @@ bool ScInterpreter::FillEntry(ScQueryEntry& rEntry)
             OUString aStr;
             const ScMatValType nType = GetDoubleOrStringFromMatrix(rItem.mfVal, aStr);
             rItem.maString = aStr;
-            rItem.mnStrId = pDok->GetCellStringPool().getIdentifierIgnoreCase(rItem.maString);
+            rItem.mnStrId = pDok->GetSharedStringPool().getIdentifierIgnoreCase(rItem.maString);
             rItem.meType = ScMatrix::IsNonValueType(nType) ?
                 ScQueryEntry::ByString : ScQueryEntry::ByValue;
         }
diff --git a/sc/source/filter/xcl97/XclImpChangeTrack.cxx b/sc/source/filter/xcl97/XclImpChangeTrack.cxx
index a93b911..ff70fbb 100644
--- a/sc/source/filter/xcl97/XclImpChangeTrack.cxx
+++ b/sc/source/filter/xcl97/XclImpChangeTrack.cxx
@@ -250,7 +250,7 @@ void XclImpChangeTrack::ReadCell(
             if( pStrm->IsValid() )
             {
                 rCell.meType = CELLTYPE_STRING;
-                rCell.mpString = new svl::SharedString(GetDoc().GetCellStringPool().intern(sString));
+                rCell.mpString = new svl::SharedString(GetDoc().GetSharedStringPool().intern(sString));
             }
         }
         break;
diff --git a/sc/source/filter/xml/XMLDDELinksContext.cxx b/sc/source/filter/xml/XMLDDELinksContext.cxx
index ba904b6..dbfe45d 100644
--- a/sc/source/filter/xml/XMLDDELinksContext.cxx
+++ b/sc/source/filter/xml/XMLDDELinksContext.cxx
@@ -166,7 +166,7 @@ void ScXMLDDELinkContext::EndElement()
         ScDDELinkCells::iterator aItr(aDDELinkTable.begin());
         ScDDELinkCells::iterator aEndItr(aDDELinkTable.end());
 
-        svl::SharedStringPool& rPool = pDoc->GetCellStringPool();
+        svl::SharedStringPool& rPool = pDoc->GetSharedStringPool();
         while (aItr != aEndItr)
         {
             if (nIndex % nColumns == 0)
diff --git a/sc/source/filter/xml/XMLTrackedChangesContext.cxx b/sc/source/filter/xml/XMLTrackedChangesContext.cxx
index 590b0e3..fd189ff 100644
--- a/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+++ b/sc/source/filter/xml/XMLTrackedChangesContext.cxx
@@ -1294,7 +1294,7 @@ void ScXMLChangeCellContext::EndElement()
                 if (!sText.isEmpty() && bString)
                 {
                     mrOldCell.meType = CELLTYPE_STRING;
-                    mrOldCell.mpString = new svl::SharedString(pDoc->GetCellStringPool().intern(sText));
+                    mrOldCell.mpString = new svl::SharedString(pDoc->GetSharedStringPool().intern(sText));
                 }
                 else
                 {
diff --git a/sc/source/ui/undo/undocell.cxx b/sc/source/ui/undo/undocell.cxx
index cff0e7f..e47857c 100644
--- a/sc/source/ui/undo/undocell.cxx
+++ b/sc/source/ui/undo/undocell.cxx
@@ -670,7 +670,7 @@ ScUndoThesaurus::ScUndoThesaurus( ScDocShell* pNewDocShell,
     else
     {
         aOldCell.meType = CELLTYPE_STRING;
-        aOldCell.mpString = new svl::SharedString(pDocShell->GetDocument()->GetCellStringPool().intern(aUndoStr));
+        aOldCell.mpString = new svl::SharedString(pDocShell->GetDocument()->GetSharedStringPool().intern(aUndoStr));
     }
     SetChangeTrack(aOldCell);
 }
commit 0e1d17eba56d4ba6e3bb1fbb654a8f839a1eef73
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Tue Oct 8 09:14:48 2013 -0400

    Use the document's string pool rather than a separate one for the formula.
    
    Change-Id: Id13bca1ed493328fb0b8a664275af8c98e3f46c8

diff --git a/sc/inc/formulagroup.hxx b/sc/inc/formulagroup.hxx
index fc3af2a..ca240f7 100644
--- a/sc/inc/formulagroup.hxx
+++ b/sc/inc/formulagroup.hxx
@@ -33,7 +33,6 @@ struct FormulaGroupContext : boost::noncopyable
     typedef boost::ptr_vector<NumArrayType> NumArrayStoreType;
     typedef boost::ptr_vector<StrArrayType> StrArrayStoreType;
 
-    svl::SharedStringPool maStrPool;
     NumArrayStoreType maNumArrays;
     StrArrayStoreType maStrArrays;
 };
diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx
index 35c9153..0f13a26 100644
--- a/sc/source/core/data/column2.cxx
+++ b/sc/source/core/data/column2.cxx
@@ -2167,11 +2167,11 @@ bool appendDouble(
 }
 
 bool appendStrings(
-    sc::FormulaGroupContext& rCxt, ScDocument* pDoc,
-    sc::FormulaGroupContext::StrArrayType& rArray, size_t nLen,
-    sc::CellStoreType::iterator it, const sc::CellStoreType::iterator& itEnd )
+    ScDocument* pDoc, sc::FormulaGroupContext::StrArrayType& rArray,
+    size_t nLen, sc::CellStoreType::iterator it, const sc::CellStoreType::iterator& itEnd)
 {
     size_t nLenRemain = nLen;
+    svl::SharedStringPool& rPool = pDoc->GetCellStringPool();
 
     for (; it != itEnd; ++it)
     {
@@ -2194,7 +2194,7 @@ bool appendStrings(
                 for (; itData != itDataEnd; ++itData)
                 {
                     OUString aStr = ScEditUtil::GetString(**itData, pDoc);
-                    rArray.push_back(rCxt.maStrPool.intern(aStr).getData());
+                    rArray.push_back(rPool.intern(aStr).getData());
                 }
             }
             break;
@@ -2219,7 +2219,7 @@ bool appendStrings(
                         return false;
                     }
 
-                    rArray.push_back(rCxt.maStrPool.intern(aStr).getData());
+                    rArray.push_back(rPool.intern(aStr).getData());
                 }
             }
             break;
@@ -2380,7 +2380,7 @@ formula::VectorRefArray ScColumn::FetchVectorRefArray( sc::FormulaGroupContext&
 
             // Fill the remaining array with values from the following blocks.
             ++aPos.first;
-            if (!appendStrings(rCxt, pDocument, rArray, nLenRequested - nLen, aPos.first, maCells.end()))
+            if (!appendStrings(pDocument, rArray, nLenRequested - nLen, aPos.first, maCells.end()))
                 return formula::VectorRefArray();
 
             return formula::VectorRefArray(&rArray[0]);


More information about the Libreoffice-commits mailing list