diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-09-13 19:57:27 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-09-14 09:57:13 +0200 |
commit | 52a4a7f3b7614660bee87f5ff93935336c029771 (patch) | |
tree | 0e2441eaa987c4113c55f191cfc7fef34ca7847f | |
parent | 0f6dcf2d0a024798aea87a9406f039b3386476f5 (diff) |
convertToTokenArray always dereferences pSrcDoc
Change-Id: Iae4581cce12d13edf5d4c0ebd1845c92de4fc026
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102608
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | sc/source/ui/docshell/externalrefmgr.cxx | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx index f1d8be08bd02..76107637d248 100644 --- a/sc/source/ui/docshell/externalrefmgr.cxx +++ b/sc/source/ui/docshell/externalrefmgr.cxx @@ -1517,7 +1517,7 @@ static FormulaToken* convertToToken( ScDocument* pHostDoc, const ScDocument* pSr } static std::unique_ptr<ScTokenArray> convertToTokenArray( - ScDocument* pHostDoc, const ScDocument* pSrcDoc, ScRange& rRange, vector<ScExternalRefCache::SingleRangeData>& rCacheData ) + ScDocument* pHostDoc, const ScDocument& rSrcDoc, ScRange& rRange, vector<ScExternalRefCache::SingleRangeData>& rCacheData ) { ScAddress& s = rRange.aStart; ScAddress& e = rRange.aEnd; @@ -1536,7 +1536,7 @@ static std::unique_ptr<ScTokenArray> convertToTokenArray( std::unique_ptr<ScRange> pUsedRange; - unique_ptr<ScTokenArray> pArray(new ScTokenArray(*pSrcDoc)); + unique_ptr<ScTokenArray> pArray(new ScTokenArray(rSrcDoc)); bool bFirstTab = true; vector<ScExternalRefCache::SingleRangeData>::iterator itrCache = rCacheData.begin(), itrCacheEnd = rCacheData.end(); @@ -1547,7 +1547,7 @@ static std::unique_ptr<ScTokenArray> convertToTokenArray( SCCOL nDataCol1 = nCol1, nDataCol2 = nCol2; SCROW nDataRow1 = nRow1, nDataRow2 = nRow2; bool bShrunk; - if (!pSrcDoc->ShrinkToUsedDataArea( bShrunk, nTab, nDataCol1, nDataRow1, nDataCol2, nDataRow2, false)) + if (!rSrcDoc.ShrinkToUsedDataArea( bShrunk, nTab, nDataCol1, nDataRow1, nDataCol2, nDataRow2, false)) // no data within specified range. continue; @@ -1573,7 +1573,7 @@ static std::unique_ptr<ScTokenArray> convertToTokenArray( xMat->GetDimensions( nMatCols, nMatRows); if (nMatCols == nMatrixColumns && nMatRows == nMatrixRows) { - pSrcDoc->FillMatrix(*xMat, nTab, nCol1, nRow1, nCol2, nRow2, &pHostDoc->GetSharedStringPool()); + rSrcDoc.FillMatrix(*xMat, nTab, nCol1, nRow1, nCol2, nRow2, &pHostDoc->GetSharedStringPool()); } else if ((nCol1 == 0 && nCol2 == MAXCOL) || (nRow1 == 0 && nRow2 == MAXROW)) { @@ -1585,7 +1585,7 @@ static std::unique_ptr<ScTokenArray> convertToTokenArray( xMat = new ScMatrix( nMatrixColumns, nMatrixRows); xMat->GetDimensions( nMatCols, nMatRows); if (nMatCols == nMatrixColumns && nMatRows == nMatrixRows) - pSrcDoc->FillMatrix(*xMat, nTab, nDataCol1, nDataRow1, nDataCol2, nDataRow2, &pHostDoc->GetSharedStringPool()); + rSrcDoc.FillMatrix(*xMat, nTab, nDataCol1, nDataRow1, nDataCol2, nDataRow2, &pHostDoc->GetSharedStringPool()); } } @@ -2276,7 +2276,7 @@ ScExternalRefCache::TokenArrayRef ScExternalRefManager::getDoubleRefTokensFromSr aRange.aStart.SetTab(nTab1); aRange.aEnd.SetTab(nTab1 + nTabSpan); - pArray = convertToTokenArray(mpDoc, pSrcDoc, aRange, aCacheData); + pArray = convertToTokenArray(mpDoc, *pSrcDoc, aRange, aCacheData); rRange = aRange; rCacheData.swap(aCacheData); return pArray; |