sc/source/ui/docshell/externalrefmgr.cxx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
New commits: commit 52a4a7f3b7614660bee87f5ff93935336c029771 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Sun Sep 13 19:57:27 2020 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Mon Sep 14 09:57:13 2020 +0200 convertToTokenArray always dereferences pSrcDoc Change-Id: Iae4581cce12d13edf5d4c0ebd1845c92de4fc026 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102608 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> 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; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits