sc/inc/dociter.hxx | 4 ++-- sc/qa/unit/ucalc.cxx | 2 +- sc/source/core/data/dociter.cxx | 36 ++++++++++++++++++------------------ sc/source/core/tool/interpr1.cxx | 14 +++++++------- sc/source/core/tool/interpr2.cxx | 4 ++-- sc/source/core/tool/interpr3.cxx | 16 ++++++++-------- sc/source/core/tool/interpr5.cxx | 4 ++-- sc/source/core/tool/interpr6.cxx | 2 +- 8 files changed, 41 insertions(+), 41 deletions(-)
New commits: commit a881a800255269fd607dfc144f9207932e5074fc Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Sat Sep 12 16:23:16 2020 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Sun Sep 13 15:14:59 2020 +0200 establish ScValueIterator::pDoc is never null Change-Id: Ie9b60da4993bc1255dab4784f876e4fae0a45bbf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102524 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/sc/inc/dociter.hxx b/sc/inc/dociter.hxx index f1092b1c1906..7727a67faa5a 100644 --- a/sc/inc/dociter.hxx +++ b/sc/inc/dociter.hxx @@ -53,7 +53,7 @@ class ScValueIterator // walk through all values in an area { typedef sc::CellStoreType::const_position_type PositionType; - ScDocument* pDoc; + ScDocument& mrDoc; ScInterpreterContext* pContext; const ScAttrArray* pAttrArray; sal_uInt32 nNumFormat; // for CalcAsShown @@ -85,7 +85,7 @@ class ScValueIterator // walk through all values in an area public: ScValueIterator( - ScDocument* pDocument, const ScRange& rRange, SubtotalFlags nSubTotalFlags = SubtotalFlags::NONE, + ScDocument& rDocument, const ScRange& rRange, SubtotalFlags nSubTotalFlags = SubtotalFlags::NONE, bool bTextAsZero = false ); void GetCurNumFmtInfo( const ScInterpreterContext& rContext, SvNumFormatType& nType, sal_uInt32& nIndex ); diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx index f29d1ab33f54..b084cb78350c 100644 --- a/sc/qa/unit/ucalc.cxx +++ b/sc/qa/unit/ucalc.cxx @@ -1093,7 +1093,7 @@ void Test::testValueIterator() { const double aChecks[] = { 1.0, 2.0, 3.0 }; size_t const nCheckLen = SAL_N_ELEMENTS(aChecks); - ScValueIterator aIter(m_pDoc, ScRange(1,2,0,3,2,0)); + ScValueIterator aIter(*m_pDoc, ScRange(1,2,0,3,2,0)); bool bHas = false; size_t nCheckPos = 0; double fVal; diff --git a/sc/source/core/data/dociter.cxx b/sc/source/core/data/dociter.cxx index 0fbbdadd4e18..7b5b6f9d83f4 100644 --- a/sc/source/core/data/dociter.cxx +++ b/sc/source/core/data/dociter.cxx @@ -97,9 +97,9 @@ static void ScAttrArray_IterGetNumberFormat( sal_uInt32& nFormat, const ScAttrAr nAttrEndRow = nRowEnd; } -ScValueIterator::ScValueIterator( ScDocument* pDocument, const ScRange& rRange, +ScValueIterator::ScValueIterator( ScDocument& rDocument, const ScRange& rRange, SubtotalFlags nSubTotalFlags, bool bTextZero ) - : pDoc(pDocument) + : mrDoc(rDocument) , pContext(nullptr) , pAttrArray(nullptr) , nNumFormat(0) // Initialized in GetNumberFormat @@ -112,16 +112,16 @@ ScValueIterator::ScValueIterator( ScDocument* pDocument, const ScRange& rRange, , mnSubTotalFlags(nSubTotalFlags) , nNumFmtType(SvNumFormatType::UNDEFINED) , bNumValid(false) - , bCalcAsShown(pDocument->GetDocOptions().IsCalcAsShown()) + , bCalcAsShown(rDocument.GetDocOptions().IsCalcAsShown()) , bTextAsZero(bTextZero) , mpCells(nullptr) { - SCTAB nDocMaxTab = pDocument->GetTableCount() - 1; + SCTAB nDocMaxTab = rDocument.GetTableCount() - 1; - if (!pDocument->ValidCol(maStartPos.Col())) maStartPos.SetCol(pDoc->MaxCol()); - if (!pDocument->ValidCol(maEndPos.Col())) maEndPos.SetCol(pDoc->MaxCol()); - if (!pDocument->ValidRow(maStartPos.Row())) maStartPos.SetRow(pDoc->MaxRow()); - if (!pDocument->ValidRow(maEndPos.Row())) maEndPos.SetRow(pDoc->MaxRow()); + if (!rDocument.ValidCol(maStartPos.Col())) maStartPos.SetCol(mrDoc.MaxCol()); + if (!rDocument.ValidCol(maEndPos.Col())) maEndPos.SetCol(mrDoc.MaxCol()); + if (!rDocument.ValidRow(maStartPos.Row())) maStartPos.SetRow(mrDoc.MaxRow()); + if (!rDocument.ValidRow(maEndPos.Row())) maEndPos.SetRow(mrDoc.MaxRow()); if (!ValidTab(maStartPos.Tab()) || maStartPos.Tab() > nDocMaxTab) maStartPos.SetTab(nDocMaxTab); if (!ValidTab(maEndPos.Tab()) || maEndPos.Tab() > nDocMaxTab) maEndPos.SetTab(nDocMaxTab); } @@ -162,14 +162,14 @@ bool ScValueIterator::GetThis(double& rValue, FormulaError& rErr) ScColumn* pCol; if (!bNextColumn) - pCol = &(pDoc->maTabs[mnTab])->aCol[mnCol]; + pCol = &(mrDoc.maTabs[mnTab])->aCol[mnCol]; else { // Find the next available column. do { ++mnCol; - if (mnCol > maEndPos.Col() || mnCol >= pDoc->maTabs[mnTab]->GetAllocatedColumnsCount()) + if (mnCol > maEndPos.Col() || mnCol >= mrDoc.maTabs[mnTab]->GetAllocatedColumnsCount()) { mnCol = maStartPos.Col(); ++mnTab; @@ -179,7 +179,7 @@ bool ScValueIterator::GetThis(double& rValue, FormulaError& rErr) return false; // Over and out } } - pCol = &(pDoc->maTabs[mnTab])->aCol[mnCol]; + pCol = &(mrDoc.maTabs[mnTab])->aCol[mnCol]; } while (pCol->IsEmptyData()); @@ -191,9 +191,9 @@ bool ScValueIterator::GetThis(double& rValue, FormulaError& rErr) SCROW nLastRow; // Skip all filtered or hidden rows, depending on mnSubTotalFlags if ( ( ( mnSubTotalFlags & SubtotalFlags::IgnoreFiltered ) && - pDoc->RowFiltered( nCurRow, mnTab, nullptr, &nLastRow ) ) || + mrDoc.RowFiltered( nCurRow, mnTab, nullptr, &nLastRow ) ) || ( ( mnSubTotalFlags & SubtotalFlags::IgnoreHidden ) && - pDoc->RowHidden( nCurRow, mnTab, nullptr, &nLastRow ) ) ) + mrDoc.RowHidden( nCurRow, mnTab, nullptr, &nLastRow ) ) ) { maCurPos = mpCells->position(maCurPos.first, nLastRow+1); continue; @@ -209,8 +209,8 @@ bool ScValueIterator::GetThis(double& rValue, FormulaError& rErr) if (bCalcAsShown) { ScAttrArray_IterGetNumberFormat(nNumFormat, pAttrArray, - nAttrEndRow, pCol->pAttrArray.get(), nCurRow, pDoc, pContext); - rValue = pDoc->RoundValueAsShown(rValue, nNumFormat, pContext); + nAttrEndRow, pCol->pAttrArray.get(), nCurRow, &mrDoc, pContext); + rValue = mrDoc.RoundValueAsShown(rValue, nNumFormat, pContext); } return true; // Found it! } @@ -269,10 +269,10 @@ bool ScValueIterator::GetThis(double& rValue, FormulaError& rErr) void ScValueIterator::GetCurNumFmtInfo( const ScInterpreterContext& rContext, SvNumFormatType& nType, sal_uInt32& nIndex ) { - if (!bNumValid && mnTab < pDoc->GetTableCount()) + if (!bNumValid && mnTab < mrDoc.GetTableCount()) { SCROW nCurRow = GetRow(); - const ScColumn* pCol = &(pDoc->maTabs[mnTab])->aCol[mnCol]; + const ScColumn* pCol = &(mrDoc.maTabs[mnTab])->aCol[mnCol]; nNumFmtIndex = pCol->GetNumberFormat(rContext, nCurRow); nNumFmtType = rContext.GetNumberFormatType( nNumFmtIndex ); bNumValid = true; @@ -287,7 +287,7 @@ bool ScValueIterator::GetFirst(double& rValue, FormulaError& rErr) mnCol = maStartPos.Col(); mnTab = maStartPos.Tab(); - ScTable* pTab = pDoc->FetchTable(mnTab); + ScTable* pTab = mrDoc.FetchTable(mnTab); if (!pTab) return false; diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index b66d84ae41e2..575ee9bd162c 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -1314,7 +1314,7 @@ void ScInterpreter::ScAnd() { double fVal; FormulaError nErr = FormulaError::NONE; - ScValueIterator aValIter( &mrDoc, aRange ); + ScValueIterator aValIter( mrDoc, aRange ); if ( aValIter.GetFirst( fVal, nErr ) && nErr == FormulaError::NONE ) { bHaveValue = true; @@ -1412,7 +1412,7 @@ void ScInterpreter::ScOr() { double fVal; FormulaError nErr = FormulaError::NONE; - ScValueIterator aValIter( &mrDoc, aRange ); + ScValueIterator aValIter( mrDoc, aRange ); if ( aValIter.GetFirst( fVal, nErr ) ) { bHaveValue = true; @@ -1514,7 +1514,7 @@ void ScInterpreter::ScXor() { double fVal; FormulaError nErr = FormulaError::NONE; - ScValueIterator aValIter( &mrDoc, aRange ); + ScValueIterator aValIter( mrDoc, aRange ); if ( aValIter.GetFirst( fVal, nErr ) ) { bHaveValue = true; @@ -3668,7 +3668,7 @@ void ScInterpreter::ScMin( bool bTextAsZero ) { FormulaError nErr = FormulaError::NONE; PopDoubleRef( aRange, nParamCount, nRefInList); - ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags, bTextAsZero ); + ScValueIterator aValIter( mrDoc, aRange, mnSubTotalFlags, bTextAsZero ); aValIter.SetInterpreterContext( &mrContext ); if (aValIter.GetFirst(nVal, nErr)) { @@ -3826,7 +3826,7 @@ void ScInterpreter::ScMax( bool bTextAsZero ) { FormulaError nErr = FormulaError::NONE; PopDoubleRef( aRange, nParamCount, nRefInList); - ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags, bTextAsZero ); + ScValueIterator aValIter( mrDoc, aRange, mnSubTotalFlags, bTextAsZero ); aValIter.SetInterpreterContext( &mrContext ); if (aValIter.GetFirst(nVal, nErr)) { @@ -4002,7 +4002,7 @@ void ScInterpreter::GetStVarParams( bool bTextAsZero, double(*VarResult)( double ArrayRefListValue& rArrayValue = vArrayValues[nRefArrayPos]; FormulaError nErr = FormulaError::NONE; PopDoubleRef( aRange, nParamCount, nRefInList); - ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags, bTextAsZero ); + ScValueIterator aValIter( mrDoc, aRange, mnSubTotalFlags, bTextAsZero ); if (aValIter.GetFirst(fVal, nErr)) { do @@ -4027,7 +4027,7 @@ void ScInterpreter::GetStVarParams( bool bTextAsZero, double(*VarResult)( double { FormulaError nErr = FormulaError::NONE; PopDoubleRef( aRange, nParamCount, nRefInList); - ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags, bTextAsZero ); + ScValueIterator aValIter( mrDoc, aRange, mnSubTotalFlags, bTextAsZero ); if (aValIter.GetFirst(fVal, nErr)) { do diff --git a/sc/source/core/tool/interpr2.cxx b/sc/source/core/tool/interpr2.cxx index 083601458a5d..61d730798cf3 100644 --- a/sc/source/core/tool/interpr2.cxx +++ b/sc/source/core/tool/interpr2.cxx @@ -1446,7 +1446,7 @@ void ScInterpreter::ScIRR() double fDenom = 0.0; FormulaError nErr = FormulaError::NONE; PopDoubleRef( aRange ); - ScValueIterator aValIter(&mrDoc, aRange, mnSubTotalFlags); + ScValueIterator aValIter(mrDoc, aRange, mnSubTotalFlags); if (aValIter.GetFirst(fValue, nErr)) { double fCount = 0.0; @@ -1557,7 +1557,7 @@ void ScInterpreter::ScMIRR() } else { - ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags ); + ScValueIterator aValIter( mrDoc, aRange, mnSubTotalFlags ); double fCellValue; FormulaError nIterError = FormulaError::NONE; diff --git a/sc/source/core/tool/interpr3.cxx b/sc/source/core/tool/interpr3.cxx index ad850a8ca105..4b8f55b9e6fd 100644 --- a/sc/source/core/tool/interpr3.cxx +++ b/sc/source/core/tool/interpr3.cxx @@ -2510,7 +2510,7 @@ void ScInterpreter::ScZTest() ScRange aRange; FormulaError nErr = FormulaError::NONE; PopDoubleRef( aRange, nParam, nRefInList); - ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags ); + ScValueIterator aValIter( mrDoc, aRange, mnSubTotalFlags ); if (aValIter.GetFirst(fVal, nErr)) { fSum += fVal; @@ -2962,7 +2962,7 @@ void ScInterpreter::ScHarMean() FormulaError nErr = FormulaError::NONE; PopDoubleRef( aRange, nParamCount, nRefInList); double nCellVal; - ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags ); + ScValueIterator aValIter( mrDoc, aRange, mnSubTotalFlags ); if (aValIter.GetFirst(nCellVal, nErr)) { if (nCellVal > 0.0) @@ -3100,7 +3100,7 @@ void ScInterpreter::ScGeoMean() FormulaError nErr = FormulaError::NONE; PopDoubleRef( aRange, nParamCount, nRefInList); double nCellVal; - ScValueIterator aValIter(&mrDoc, aRange, mnSubTotalFlags); + ScValueIterator aValIter(mrDoc, aRange, mnSubTotalFlags); if (aValIter.GetFirst(nCellVal, nErr)) { if (nCellVal > 0.0) @@ -3266,7 +3266,7 @@ bool ScInterpreter::CalculateSkew(double& fSum,double& fCount,double& vSum,std:: { PopDoubleRef( aRange, nParamCount, nRefInList); FormulaError nErr = FormulaError::NONE; - ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags ); + ScValueIterator aValIter( mrDoc, aRange, mnSubTotalFlags ); if (aValIter.GetFirst(fVal, nErr)) { fSum += fVal; @@ -3901,7 +3901,7 @@ std::vector<double> ScInterpreter::GetTopNumberArray( SCSIZE& rCol, SCSIZE& rRow FormulaError nErr = FormulaError::NONE; double fCellVal; - ScValueIterator aValIter(&mrDoc, aRange, mnSubTotalFlags); + ScValueIterator aValIter(mrDoc, aRange, mnSubTotalFlags); if (aValIter.GetFirst(fCellVal, nErr)) { do @@ -3982,7 +3982,7 @@ void ScInterpreter::GetNumberSequenceArray( sal_uInt8 nParamCount, vector<double FormulaError nErr = FormulaError::NONE; double fCellVal; - ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags ); + ScValueIterator aValIter( mrDoc, aRange, mnSubTotalFlags ); if (aValIter.GetFirst( fCellVal, nErr)) { if (bIgnoreErrVal) @@ -4320,7 +4320,7 @@ void ScInterpreter::ScAveDev() FormulaError nErr = FormulaError::NONE; double nCellVal; PopDoubleRef( aRange, nParam, nRefInList); - ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags ); + ScValueIterator aValIter( mrDoc, aRange, mnSubTotalFlags ); if (aValIter.GetFirst(nCellVal, nErr)) { rVal += nCellVal; @@ -4399,7 +4399,7 @@ void ScInterpreter::ScAveDev() FormulaError nErr = FormulaError::NONE; double nCellVal; PopDoubleRef( aRange, nParam, nRefInList); - ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags ); + ScValueIterator aValIter( mrDoc, aRange, mnSubTotalFlags ); if (aValIter.GetFirst(nCellVal, nErr)) { rVal += (fabs(nCellVal - nMiddle)); diff --git a/sc/source/core/tool/interpr5.cxx b/sc/source/core/tool/interpr5.cxx index d8ef23913f66..098d987aec2a 100644 --- a/sc/source/core/tool/interpr5.cxx +++ b/sc/source/core/tool/interpr5.cxx @@ -159,7 +159,7 @@ void ScInterpreter::ScGCD() FormulaError nErr = FormulaError::NONE; PopDoubleRef( aRange, nParamCount, nRefInList); double nCellVal; - ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags ); + ScValueIterator aValIter( mrDoc, aRange, mnSubTotalFlags ); if (aValIter.GetFirst(nCellVal, nErr)) { do @@ -236,7 +236,7 @@ void ScInterpreter:: ScLCM() FormulaError nErr = FormulaError::NONE; PopDoubleRef( aRange, nParamCount, nRefInList); double nCellVal; - ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags ); + ScValueIterator aValIter( mrDoc, aRange, mnSubTotalFlags ); if (aValIter.GetFirst(nCellVal, nErr)) { do diff --git a/sc/source/core/tool/interpr6.cxx b/sc/source/core/tool/interpr6.cxx index 263b67b22e5f..5fb8e3bd1124 100644 --- a/sc/source/core/tool/interpr6.cxx +++ b/sc/source/core/tool/interpr6.cxx @@ -859,7 +859,7 @@ void ScInterpreter::IterateParameters( ScIterFunc eFunc, bool bTextAsZero ) } else { - ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags, bTextAsZero ); + ScValueIterator aValIter( mrDoc, aRange, mnSubTotalFlags, bTextAsZero ); aValIter.SetInterpreterContext( &mrContext ); FormulaError nErr = FormulaError::NONE; if (aValIter.GetFirst(fVal, nErr)) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits