[Libreoffice-commits] core.git: sc/inc sc/qa sc/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Sun Sep 13 13:15:47 UTC 2020


 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 <caolanm at redhat.com>
AuthorDate: Sat Sep 12 16:23:16 2020 +0100
Commit:     Caolán McNamara <caolanm at 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 <caolanm at 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))


More information about the Libreoffice-commits mailing list