sc/inc/simpleformulacalc.hxx | 4 ++-- sc/qa/unit/ucalc.cxx | 4 ++-- sc/source/core/data/simpleformulacalc.cxx | 12 ++++++------ sc/source/ui/app/inputhdl.cxx | 4 ++-- sc/source/ui/formdlg/formula.cxx | 4 ++-- 5 files changed, 14 insertions(+), 14 deletions(-)
New commits: commit fa2499a6e9c0c4f25b0a59cd89489d7051c57ee3 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Sat Sep 12 14:27:27 2020 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Sat Sep 12 17:33:06 2020 +0200 establish that ScSimpleFormulaCalculator mpDoc is never null Change-Id: Ic3f404c266e9f91b47ba408036df37142a4fd91c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102519 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/sc/inc/simpleformulacalc.hxx b/sc/inc/simpleformulacalc.hxx index 39a26d02cbed..9bdc8c60d928 100644 --- a/sc/inc/simpleformulacalc.hxx +++ b/sc/inc/simpleformulacalc.hxx @@ -27,7 +27,7 @@ private: bool mbCalculated; std::unique_ptr<ScTokenArray> mpCode; ScAddress maAddr; - ScDocument* mpDoc; + ScDocument& mrDoc; ScFormulaResult maResult; formula::FormulaGrammar::Grammar maGram; bool mbMatrixResult; @@ -36,7 +36,7 @@ private: bool mbMatrixFormula; public: - ScSimpleFormulaCalculator(ScDocument* pDoc, const ScAddress& rAddr, + ScSimpleFormulaCalculator(ScDocument& rDoc, const ScAddress& rAddr, const OUString& rFormula, bool bMatrixFormula, formula::FormulaGrammar::Grammar eGram = formula::FormulaGrammar::GRAM_DEFAULT); ~ScSimpleFormulaCalculator(); diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx index 41bc846640cb..f29d1ab33f54 100644 --- a/sc/qa/unit/ucalc.cxx +++ b/sc/qa/unit/ucalc.cxx @@ -6370,7 +6370,7 @@ void Test::testFormulaWizardSubformula() m_pDoc->SetString(ScAddress(1,1,0), "=1/0"); // B2 m_pDoc->SetString(ScAddress(1,2,0), "=gibberish"); // B3 - ScSimpleFormulaCalculator aFCell1( m_pDoc, ScAddress(0,0,0), "=B1:B3", true ); + ScSimpleFormulaCalculator aFCell1( *m_pDoc, ScAddress(0,0,0), "=B1:B3", true ); FormulaError nErrCode = aFCell1.GetErrCode(); CPPUNIT_ASSERT( nErrCode == FormulaError::NONE || aFCell1.IsMatrix() ); CPPUNIT_ASSERT_EQUAL( OUString("{1;#DIV/0!;#NAME?}"), aFCell1.GetString().getString() ); @@ -6378,7 +6378,7 @@ void Test::testFormulaWizardSubformula() m_pDoc->SetString(ScAddress(1,0,0), "=NA()"); // B1 m_pDoc->SetString(ScAddress(1,1,0), "2"); // B2 m_pDoc->SetString(ScAddress(1,2,0), "=1+2"); // B3 - ScSimpleFormulaCalculator aFCell2( m_pDoc, ScAddress(0,0,0), "=B1:B3", true ); + ScSimpleFormulaCalculator aFCell2( *m_pDoc, ScAddress(0,0,0), "=B1:B3", true ); nErrCode = aFCell2.GetErrCode(); CPPUNIT_ASSERT( nErrCode == FormulaError::NONE || aFCell2.IsMatrix() ); CPPUNIT_ASSERT_EQUAL( OUString("{#N/A;2;3}"), aFCell2.GetString().getString() ); diff --git a/sc/source/core/data/simpleformulacalc.cxx b/sc/source/core/data/simpleformulacalc.cxx index 50fcfceb5927..caeef59e7e61 100644 --- a/sc/source/core/data/simpleformulacalc.cxx +++ b/sc/source/core/data/simpleformulacalc.cxx @@ -17,19 +17,19 @@ #define DISPLAY_LEN 15 -ScSimpleFormulaCalculator::ScSimpleFormulaCalculator( ScDocument* pDoc, const ScAddress& rAddr, +ScSimpleFormulaCalculator::ScSimpleFormulaCalculator( ScDocument& rDoc, const ScAddress& rAddr, const OUString& rFormula, bool bMatrixFormula, formula::FormulaGrammar::Grammar eGram ) : mnFormatType(SvNumFormatType::ALL) , mbCalculated(false) , maAddr(rAddr) - , mpDoc(pDoc) + , mrDoc(rDoc) , maGram(eGram) , mbMatrixResult(false) , mbLimitString(false) , mbMatrixFormula(bMatrixFormula) { // compile already here - ScCompiler aComp(mpDoc, maAddr, eGram, true, bMatrixFormula); + ScCompiler aComp(&mrDoc, maAddr, eGram, true, bMatrixFormula); mpCode = aComp.CompileString(rFormula); if(mpCode->GetCodeError() == FormulaError::NONE && mpCode->GetLen()) aComp.CompileTokenArray(); @@ -46,17 +46,17 @@ void ScSimpleFormulaCalculator::Calculate() mbCalculated = true; - ScInterpreter aInt(mpDoc->GetFormulaCell( maAddr ), mpDoc, mpDoc->GetNonThreadedContext(), maAddr, *mpCode); + ScInterpreter aInt(mrDoc.GetFormulaCell( maAddr ), &mrDoc, mrDoc.GetNonThreadedContext(), maAddr, *mpCode); if (mbMatrixFormula) aInt.AssertFormulaMatrix(); - std::unique_ptr<sfx2::LinkManager> pNewLinkMgr( new sfx2::LinkManager(mpDoc->GetDocumentShell()) ); + std::unique_ptr<sfx2::LinkManager> pNewLinkMgr( new sfx2::LinkManager(mrDoc.GetDocumentShell()) ); aInt.SetLinkManager( pNewLinkMgr.get() ); formula::StackVar aIntType = aInt.Interpret(); if ( aIntType == formula::svMatrixCell ) { - ScCompiler aComp(mpDoc, maAddr, maGram); + ScCompiler aComp(&mrDoc, maAddr, maGram); OUStringBuffer aStr; aComp.CreateStringFromToken(aStr, aInt.GetResultToken().get()); diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx index 0a41aa329a5c..525b09723332 100644 --- a/sc/source/ui/app/inputhdl.cxx +++ b/sc/source/ui/app/inputhdl.cxx @@ -1708,7 +1708,7 @@ static OUString lcl_Calculate( const OUString& rFormula, ScDocument& rDoc, const if(rFormula.isEmpty()) return OUString(); - std::unique_ptr<ScSimpleFormulaCalculator> pCalc( new ScSimpleFormulaCalculator( &rDoc, rPos, rFormula, false ) ); + std::unique_ptr<ScSimpleFormulaCalculator> pCalc( new ScSimpleFormulaCalculator( rDoc, rPos, rFormula, false ) ); // FIXME: HACK! In order to not get a #REF! for ColRowNames, if a name is actually inserted as a Range // into the whole Formula, but is interpreted as a single cell reference when displaying it on its own @@ -1720,7 +1720,7 @@ static OUString lcl_Calculate( const OUString& rFormula, ScDocument& rDoc, const { // ==1: Single one is as a Parameter always a Range // ==0: It might be one, if ... OUString aBraced = "(" + rFormula + ")"; - pCalc.reset( new ScSimpleFormulaCalculator( &rDoc, rPos, aBraced, false ) ); + pCalc.reset( new ScSimpleFormulaCalculator( rDoc, rPos, aBraced, false ) ); } else bColRowName = false; diff --git a/sc/source/ui/formdlg/formula.cxx b/sc/source/ui/formdlg/formula.cxx index 977ea5e827f6..28fb1250a034 100644 --- a/sc/source/ui/formdlg/formula.cxx +++ b/sc/source/ui/formdlg/formula.cxx @@ -298,7 +298,7 @@ void ScFormulaDlg::Close() bool ScFormulaDlg::calculateValue( const OUString& rStrExp, OUString& rStrResult, bool bMatrixFormula ) { std::unique_ptr<ScSimpleFormulaCalculator> pFCell( new ScSimpleFormulaCalculator( - m_pDoc, m_CursorPos, rStrExp, bMatrixFormula)); + *m_pDoc, m_CursorPos, rStrExp, bMatrixFormula)); pFCell->SetLimitString(true); // HACK! to avoid neither #REF! from ColRowNames @@ -313,7 +313,7 @@ bool ScFormulaDlg::calculateValue( const OUString& rStrExp, OUString& rStrResult // ==0: would be an area if... OUString aBraced = "(" + rStrExp + ")"; pFCell.reset( new ScSimpleFormulaCalculator( - m_pDoc, m_CursorPos, aBraced, bMatrixFormula)); + *m_pDoc, m_CursorPos, aBraced, bMatrixFormula)); pFCell->SetLimitString(true); } else _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits