From 8ff2889f417fdf9a2a2b849189dfd4e693bb7a45 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Sun, 13 Sep 2020 14:30:26 +0100 Subject: MakeRangeFromName never passed a null ScDocument* MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ie9de24e4be10efb071139f02576058cee512bc7a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102579 Tested-by: Jenkins Reviewed-by: Caolán McNamara --- sc/inc/rangeutl.hxx | 2 +- sc/source/core/tool/rangeutl.cxx | 14 +++++++------- sc/source/ui/app/inputwin.cxx | 4 ++-- sc/source/ui/miscdlgs/anyrefdg.cxx | 2 +- sc/source/ui/miscdlgs/optsolver.cxx | 2 +- sc/source/ui/unoobj/cellsuno.cxx | 4 ++-- sc/source/ui/unoobj/docuno.cxx | 4 ++-- sc/source/ui/view/tabvwsh3.cxx | 4 ++-- 8 files changed, 18 insertions(+), 18 deletions(-) diff --git a/sc/inc/rangeutl.hxx b/sc/inc/rangeutl.hxx index f5468ad2728f..a65939e81e03 100644 --- a/sc/inc/rangeutl.hxx +++ b/sc/inc/rangeutl.hxx @@ -72,7 +72,7 @@ public: ScAddress::Details const & rDetails = ScAddress::detailsOOOa1 ); static bool MakeRangeFromName( const OUString& rName, - const ScDocument* pDoc, + const ScDocument& rDoc, SCTAB nCurTab, ScRange& rRange, RutlNameScope eScope=RUTL_NAMES, diff --git a/sc/source/core/tool/rangeutl.cxx b/sc/source/core/tool/rangeutl.cxx index 6faacbaaf6cf..340b76eeada1 100644 --- a/sc/source/core/tool/rangeutl.cxx +++ b/sc/source/core/tool/rangeutl.cxx @@ -234,7 +234,7 @@ bool ScRangeUtil::IsAbsPos( const OUString& rPosStr, bool ScRangeUtil::MakeRangeFromName ( const OUString& rName, - const ScDocument* pDoc, + const ScDocument& rDoc, SCTAB nCurTab, ScRange& rRange, RutlNameScope eScope, @@ -257,7 +257,7 @@ bool ScRangeUtil::MakeRangeFromName ( if (nEndPos != -1 && nStartPos != -1) { OUString aSheetName = aName.copy(nStartPos+2, nEndPos-nStartPos-2); - if (pDoc->GetTable(aSheetName, nTable)) + if (rDoc.GetTable(aSheetName, nTable)) { aName = aName.copy(0, nStartPos); } @@ -265,13 +265,13 @@ bool ScRangeUtil::MakeRangeFromName ( nTable = nCurTab; } //then check for local range names - ScRangeName* pRangeNames = pDoc->GetRangeName( nTable ); + ScRangeName* pRangeNames = rDoc.GetRangeName( nTable ); ScRangeData* pData = nullptr; aName = ScGlobal::getCharClassPtr()->uppercase(aName); if ( pRangeNames ) pData = pRangeNames->findByUpperName(aName); if (!pData) - pData = pDoc->GetRangeName()->findByUpperName(aName); + pData = rDoc.GetRangeName()->findByUpperName(aName); if (pData) { OUString aStrArea; @@ -280,7 +280,7 @@ bool ScRangeUtil::MakeRangeFromName ( pData->GetSymbol( aStrArea ); - if ( IsAbsArea( aStrArea, pDoc, nTable, + if ( IsAbsArea( aStrArea, &rDoc, nTable, nullptr, &aStartPos, &aEndPos, rDetails ) ) { nTab = aStartPos.Tab(); @@ -294,7 +294,7 @@ bool ScRangeUtil::MakeRangeFromName ( { CutPosString( aStrArea, aStrArea ); - if ( IsAbsPos( aStrArea, pDoc, nTable, + if ( IsAbsPos( aStrArea, &rDoc, nTable, nullptr, &aStartPos, rDetails ) ) { nTab = aStartPos.Tab(); @@ -307,7 +307,7 @@ bool ScRangeUtil::MakeRangeFromName ( } else if( eScope==RUTL_DBASE ) { - ScDBCollection::NamedDBs& rDbNames = pDoc->GetDBCollection()->getNamedDBs(); + ScDBCollection::NamedDBs& rDbNames = rDoc.GetDBCollection()->getNamedDBs(); ScDBData* pData = rDbNames.findByUpperName(ScGlobal::getCharClassPtr()->uppercase(rName)); if (pData) { diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx index 6f2245de753f..82c8c0925a06 100644 --- a/sc/source/ui/app/inputwin.cxx +++ b/sc/source/ui/app/inputwin.cxx @@ -2330,9 +2330,9 @@ static ScNameInputType lcl_GetInputType( const OUString& rText ) eRet = SC_NAME_INPUT_RANGE; else if ( aAddress.Parse( rText, pDoc, eConv ) & ScRefFlags::VALID ) eRet = SC_NAME_INPUT_CELL; - else if ( ScRangeUtil::MakeRangeFromName( rText, pDoc, nTab, aRange, RUTL_NAMES, eConv ) ) + else if ( ScRangeUtil::MakeRangeFromName( rText, *pDoc, nTab, aRange, RUTL_NAMES, eConv ) ) eRet = SC_NAME_INPUT_NAMEDRANGE; - else if ( ScRangeUtil::MakeRangeFromName( rText, pDoc, nTab, aRange, RUTL_DBASE, eConv ) ) + else if ( ScRangeUtil::MakeRangeFromName( rText, *pDoc, nTab, aRange, RUTL_DBASE, eConv ) ) eRet = SC_NAME_INPUT_DATABASE; else if ( comphelper::string::isdigitAsciiString( rText ) && ( nNumeric = rText.toInt32() ) > 0 && nNumeric <= pDoc->MaxRow()+1 ) diff --git a/sc/source/ui/miscdlgs/anyrefdg.cxx b/sc/source/ui/miscdlgs/anyrefdg.cxx index 5610e6d63296..92c3727ded49 100644 --- a/sc/source/ui/miscdlgs/anyrefdg.cxx +++ b/sc/source/ui/miscdlgs/anyrefdg.cxx @@ -161,7 +161,7 @@ bool ScFormulaReferenceHelper::ParseWithNames( ScRangeList& rRanges, const OUStr aRange.aEnd.SetTab( aRange.aStart.Tab() ); rRanges.push_back( aRange ); } - else if ( ScRangeUtil::MakeRangeFromName( aRangeStr, &rDoc, m_nRefTab, aRange, RUTL_NAMES, aDetails ) ) + else if ( ScRangeUtil::MakeRangeFromName( aRangeStr, rDoc, m_nRefTab, aRange, RUTL_NAMES, aDetails ) ) rRanges.push_back( aRange ); else bError = true; diff --git a/sc/source/ui/miscdlgs/optsolver.cxx b/sc/source/ui/miscdlgs/optsolver.cxx index 1b4cb066afa7..8f0378724828 100644 --- a/sc/source/ui/miscdlgs/optsolver.cxx +++ b/sc/source/ui/miscdlgs/optsolver.cxx @@ -762,7 +762,7 @@ bool ScOptSolverDlg::ParseRef( ScRange& rRange, const OUString& rInput, bool bAl rRange.aEnd.SetTab( rRange.aStart.Tab() ); return ( bAllowRange || rRange.aStart == rRange.aEnd ); } - else if ( ScRangeUtil::MakeRangeFromName( rInput, &mrDoc, mnCurTab, rRange, RUTL_NAMES, aDetails ) ) + else if ( ScRangeUtil::MakeRangeFromName( rInput, mrDoc, mnCurTab, rRange, RUTL_NAMES, aDetails ) ) return ( bAllowRange || rRange.aStart == rRange.aEnd ); return false; // not recognized diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx index 903a90726645..10a510920c86 100644 --- a/sc/source/ui/unoobj/cellsuno.cxx +++ b/sc/source/ui/unoobj/cellsuno.cxx @@ -4762,8 +4762,8 @@ uno::Reference ScCellRangeObj::getCellRangeByName( } else { - if ( ScRangeUtil::MakeRangeFromName( aName, &rDoc, nTab, aCellRange ) || - ScRangeUtil::MakeRangeFromName( aName, &rDoc, nTab, aCellRange, RUTL_DBASE ) ) + if ( ScRangeUtil::MakeRangeFromName( aName, rDoc, nTab, aCellRange ) || + ScRangeUtil::MakeRangeFromName( aName, rDoc, nTab, aCellRange, RUTL_DBASE ) ) bFound = true; } diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx index b04dcf575add..2531c4776284 100644 --- a/sc/source/ui/unoobj/docuno.cxx +++ b/sc/source/ui/unoobj/docuno.cxx @@ -1406,8 +1406,8 @@ static bool lcl_ParseTarget( const OUString& rTarget, ScRange& rTargetRange, too rTargetRange = aAddress; bRangeValid = true; // cell reference } - else if ( ScRangeUtil::MakeRangeFromName( rTarget, &rDoc, nSourceTab, rTargetRange ) || - ScRangeUtil::MakeRangeFromName( rTarget, &rDoc, nSourceTab, rTargetRange, RUTL_DBASE ) ) + else if ( ScRangeUtil::MakeRangeFromName( rTarget, rDoc, nSourceTab, rTargetRange ) || + ScRangeUtil::MakeRangeFromName( rTarget, rDoc, nSourceTab, rTargetRange, RUTL_DBASE ) ) { bRangeValid = true; // named range or database range } diff --git a/sc/source/ui/view/tabvwsh3.cxx b/sc/source/ui/view/tabvwsh3.cxx index f12692547c6a..0beaa6af37f0 100644 --- a/sc/source/ui/view/tabvwsh3.cxx +++ b/sc/source/ui/view/tabvwsh3.cxx @@ -368,8 +368,8 @@ void ScTabViewShell::Execute( SfxRequest& rReq ) else { formula::FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention(); - if( ScRangeUtil::MakeRangeFromName( aAddress, pDoc, nTab, aScRange, RUTL_NAMES, eConv ) || - ScRangeUtil::MakeRangeFromName( aAddress, pDoc, nTab, aScRange, RUTL_DBASE, eConv ) ) + if( ScRangeUtil::MakeRangeFromName( aAddress, *pDoc, nTab, aScRange, RUTL_NAMES, eConv ) || + ScRangeUtil::MakeRangeFromName( aAddress, *pDoc, nTab, aScRange, RUTL_DBASE, eConv ) ) { nResult |= ScRefFlags::VALID; if( aScRange.aStart.Tab() != nTab ) -- cgit v1.2.3