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

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Fri Sep 18 12:22:58 UTC 2020


 sc/inc/address.hxx                        |    2 +-
 sc/qa/unit/helper/qahelper.cxx            |    2 +-
 sc/qa/unit/helper/shared_test_impl.hxx    |    2 +-
 sc/qa/unit/range.cxx                      |    2 +-
 sc/qa/unit/subsequent_filters-test.cxx    |    2 +-
 sc/qa/unit/ucalc_formula.cxx              |    8 ++++----
 sc/source/core/data/conditio.cxx          |    2 +-
 sc/source/core/tool/address.cxx           |    8 ++++----
 sc/source/core/tool/compiler.cxx          |    4 ++--
 sc/source/core/tool/rangenam.cxx          |    4 ++--
 sc/source/core/tool/rangeutl.cxx          |   28 ++++++++++++++--------------
 sc/source/core/tool/reffind.cxx           |    4 ++--
 sc/source/filter/oox/revisionfragment.cxx |    2 +-
 sc/source/filter/orcus/interface.cxx      |    2 +-
 sc/source/filter/xcl97/xcl97rec.cxx       |   14 +++++++-------
 sc/source/filter/xml/xmlcondformat.cxx    |    2 +-
 sc/source/ui/app/inputwin.cxx             |    2 +-
 sc/source/ui/dbgui/PivotLayoutDialog.cxx  |    2 +-
 sc/source/ui/dbgui/filtdlg.cxx            |    2 +-
 sc/source/ui/dbgui/foptmgr.cxx            |    4 ++--
 sc/source/ui/dbgui/sfiltdlg.cxx           |    2 +-
 sc/source/ui/dbgui/tpsort.cxx             |    4 ++--
 sc/source/ui/dialogs/searchresults.cxx    |    2 +-
 sc/source/ui/docshell/docsh4.cxx          |    4 ++--
 sc/source/ui/docshell/impex.cxx           |    2 +-
 sc/source/ui/docshell/servobj.cxx         |    2 +-
 sc/source/ui/miscdlgs/solvrdlg.cxx        |    4 ++--
 sc/source/ui/navipi/navcitem.cxx          |    2 +-
 sc/source/ui/pagedlg/areasdlg.cxx         |    2 +-
 sc/source/ui/unoobj/addruno.cxx           |    2 +-
 sc/source/ui/unoobj/docuno.cxx            |    2 +-
 sc/source/ui/view/cellsh1.cxx             |    2 +-
 sc/source/ui/view/drawvie4.cxx            |    2 +-
 sc/source/ui/view/gridwin.cxx             |    2 +-
 sc/source/ui/view/tabvwsh3.cxx            |    8 ++++----
 sc/source/ui/xmlsource/xmlsourcedlg.cxx   |    2 +-
 36 files changed, 71 insertions(+), 71 deletions(-)

New commits:
commit 30bb3657ee78b7d3b0a7d26f80bf1ff94b16f51c
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Wed Sep 16 10:20:56 2020 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Fri Sep 18 14:22:13 2020 +0200

    ScAddress::Parse never passed a null ScDocument*
    
    Change-Id: I8832f2cc4311b30b9a15883e831260a19d089a57
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102974
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sc/inc/address.hxx b/sc/inc/address.hxx
index fce2fc648275..ee33fbeba4a2 100644
--- a/sc/inc/address.hxx
+++ b/sc/inc/address.hxx
@@ -324,7 +324,7 @@ public:
                 resulting reference is fully valid or not.
      */
     SC_DLLPUBLIC ScRefFlags Parse(
-                    const OUString&, const ScDocument* = nullptr,
+                    const OUString&, const ScDocument&,
                     const Details& rDetails = detailsOOOa1,
                     ExternalInfo* pExtInfo = nullptr,
                     const css::uno::Sequence<css::sheet::ExternalLinkInfo>* pExternalLinks = nullptr,
diff --git a/sc/qa/unit/helper/qahelper.cxx b/sc/qa/unit/helper/qahelper.cxx
index b0a6084d9db9..130ff024cf87 100644
--- a/sc/qa/unit/helper/qahelper.cxx
+++ b/sc/qa/unit/helper/qahelper.cxx
@@ -404,7 +404,7 @@ ScRangeList getChartRanges(ScDocument& rDoc, const SdrOle2Obj& rChartObj)
         {
             // Parse it as a single cell address.
             ScAddress aAddr;
-            nRes = aAddr.Parse(aRangeReps[i], &rDoc, rDoc.GetAddressConvention());
+            nRes = aAddr.Parse(aRangeReps[i], rDoc, rDoc.GetAddressConvention());
             CPPUNIT_ASSERT_MESSAGE("Failed to parse a range representation.", (nRes & ScRefFlags::VALID));
             aRanges.push_back(aAddr);
         }
diff --git a/sc/qa/unit/helper/shared_test_impl.hxx b/sc/qa/unit/helper/shared_test_impl.hxx
index e5bffd5c8f06..92c05c6d7e9a 100644
--- a/sc/qa/unit/helper/shared_test_impl.hxx
+++ b/sc/qa/unit/helper/shared_test_impl.hxx
@@ -280,7 +280,7 @@ void testCeilingFloor_Impl( ScDocument& rDoc )
     // Sheet1.K1 has =AND(K3:K81) to evaluate all results.
     const char pORef[] = "Sheet1.K1";
     ScAddress aPos;
-    aPos.Parse(pORef, &rDoc);
+    aPos.Parse(pORef, rDoc);
     ASSERT_FORMULA_EQUAL(rDoc, aPos, "AND(K3:K81)", "Wrong formula.");
     CPPUNIT_ASSERT_MESSAGE( OString( pORef + OStringLiteral(" result is error.")).getStr(),
             isFormulaWithoutError( rDoc, aPos));
diff --git a/sc/qa/unit/range.cxx b/sc/qa/unit/range.cxx
index f20def220318..21add9ee37fe 100644
--- a/sc/qa/unit/range.cxx
+++ b/sc/qa/unit/range.cxx
@@ -40,7 +40,7 @@ void ScAddressTest::testAddressParsing()
 {
     ScAddress aAddr;
     ScDocument& rDoc = m_xDocShRef->GetDocument();
-    ScRefFlags nRes = aAddr.Parse("1", &rDoc, formula::FormulaGrammar::CONV_OOO);
+    ScRefFlags nRes = aAddr.Parse("1", rDoc, formula::FormulaGrammar::CONV_OOO);
     CPPUNIT_ASSERT_MESSAGE("Should fail to parse.", !(nRes & ScRefFlags::VALID));
 }
 
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index e2033cadebc6..203460654d17 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -4332,7 +4332,7 @@ void ScFiltersTest::testEmptyRowsXLSXML()
     }
 
     ScAddress aPos;
-    aPos.Parse("B9", &rDoc);
+    aPos.Parse("B9", rDoc);
     ASSERT_FORMULA_EQUAL(rDoc, aPos, "SUM(B4:B8)", nullptr);
 
     xDocSh->DoClose();
diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx
index 00bffef9de29..e226103849c8 100644
--- a/sc/qa/unit/ucalc_formula.cxx
+++ b/sc/qa/unit/ucalc_formula.cxx
@@ -286,28 +286,28 @@ void Test::testFormulaParseReference()
 
     ScAddress aPos;
     ScAddress::ExternalInfo aExtInfo;
-    ScRefFlags nRes = aPos.Parse("'90''s Music'.D10", m_pDoc, formula::FormulaGrammar::CONV_OOO, &aExtInfo);
+    ScRefFlags nRes = aPos.Parse("'90''s Music'.D10", *m_pDoc, formula::FormulaGrammar::CONV_OOO, &aExtInfo);
     CPPUNIT_ASSERT_MESSAGE("Failed to parse.", (nRes & ScRefFlags::VALID));
     CPPUNIT_ASSERT_EQUAL(static_cast<SCTAB>(1), aPos.Tab());
     CPPUNIT_ASSERT_EQUAL(static_cast<SCCOL>(3), aPos.Col());
     CPPUNIT_ASSERT_EQUAL(static_cast<SCROW>(9), aPos.Row());
     CPPUNIT_ASSERT_MESSAGE("This is not an external address.", !aExtInfo.mbExternal);
 
-    nRes = aPos.Parse("'90''s and 70''s'.C100", m_pDoc, formula::FormulaGrammar::CONV_OOO, &aExtInfo);
+    nRes = aPos.Parse("'90''s and 70''s'.C100", *m_pDoc, formula::FormulaGrammar::CONV_OOO, &aExtInfo);
     CPPUNIT_ASSERT_MESSAGE("Failed to parse.", (nRes & ScRefFlags::VALID));
     CPPUNIT_ASSERT_EQUAL(static_cast<SCTAB>(2), aPos.Tab());
     CPPUNIT_ASSERT_EQUAL(static_cast<SCCOL>(2), aPos.Col());
     CPPUNIT_ASSERT_EQUAL(static_cast<SCROW>(99), aPos.Row());
     CPPUNIT_ASSERT_MESSAGE("This is not an external address.", !aExtInfo.mbExternal);
 
-    nRes = aPos.Parse("'All Others'.B3", m_pDoc, formula::FormulaGrammar::CONV_OOO, &aExtInfo);
+    nRes = aPos.Parse("'All Others'.B3", *m_pDoc, formula::FormulaGrammar::CONV_OOO, &aExtInfo);
     CPPUNIT_ASSERT_MESSAGE("Failed to parse.", (nRes & ScRefFlags::VALID));
     CPPUNIT_ASSERT_EQUAL(static_cast<SCTAB>(3), aPos.Tab());
     CPPUNIT_ASSERT_EQUAL(static_cast<SCCOL>(1), aPos.Col());
     CPPUNIT_ASSERT_EQUAL(static_cast<SCROW>(2), aPos.Row());
     CPPUNIT_ASSERT_MESSAGE("This is not an external address.", !aExtInfo.mbExternal);
 
-    nRes = aPos.Parse("NoQuote.E13", m_pDoc, formula::FormulaGrammar::CONV_OOO, &aExtInfo);
+    nRes = aPos.Parse("NoQuote.E13", *m_pDoc, formula::FormulaGrammar::CONV_OOO, &aExtInfo);
     CPPUNIT_ASSERT_MESSAGE("Failed to parse.", (nRes & ScRefFlags::VALID));
     CPPUNIT_ASSERT_EQUAL(static_cast<SCTAB>(4), aPos.Tab());
     CPPUNIT_ASSERT_EQUAL(static_cast<SCCOL>(4), aPos.Col());
diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx
index ee70b5d70a03..698ab22a05d5 100644
--- a/sc/source/core/data/conditio.cxx
+++ b/sc/source/core/data/conditio.cxx
@@ -439,7 +439,7 @@ void ScConditionEntry::CompileXML()
         ScAddress aNew;
         /* XML is always in OOo:A1 format, although R1C1 would be more amenable
          * to compression */
-        if ( aNew.Parse( aSrcString, mpDoc ) & ScRefFlags::VALID )
+        if ( aNew.Parse( aSrcString, *mpDoc ) & ScRefFlags::VALID )
             aSrcPos = aNew;
         // if the position is invalid, there isn't much we can do at this time
         aSrcString.clear();
diff --git a/sc/source/core/tool/address.cxx b/sc/source/core/tool/address.cxx
index 39e950aa0418..a9bf2125ae5b 100644
--- a/sc/source/core/tool/address.cxx
+++ b/sc/source/core/tool/address.cxx
@@ -1502,7 +1502,7 @@ bool ConvertSingleRef( const ScDocument& rDoc, const OUString& rRefString,
     if (pExtInfo || (ScGlobal::FindUnquoted( rRefString, SC_COMPILER_FILE_TAB_SEP) == -1))
     {
         ScAddress aAddr( 0, 0, nDefTab );
-        ScRefFlags nRes = aAddr.Parse( rRefString, &rDoc, rDetails, pExtInfo);
+        ScRefFlags nRes = aAddr.Parse( rRefString, rDoc, rDetails, pExtInfo);
         if ( nRes & ScRefFlags::VALID )
         {
             rRefAddress.Set( aAddr,
@@ -1541,14 +1541,14 @@ bool ConvertDoubleRef( const ScDocument& rDoc, const OUString& rRefString, SCTAB
     return bRet;
 }
 
-ScRefFlags ScAddress::Parse( const OUString& r, const ScDocument* pDoc,
+ScRefFlags ScAddress::Parse( const OUString& r, const ScDocument& rDoc,
                              const Details& rDetails,
                              ExternalInfo* pExtInfo,
                              const uno::Sequence<sheet::ExternalLinkInfo>* pExternalLinks,
                              sal_Int32* pSheetEndPos,
                              const OUString* pErrRef )
 {
-    return lcl_ScAddress_Parse( r.getStr(), pDoc, *this, rDetails, pExtInfo, pExternalLinks, pSheetEndPos, pErrRef);
+    return lcl_ScAddress_Parse( r.getStr(), &rDoc, *this, rDetails, pExtInfo, pExternalLinks, pSheetEndPos, pErrRef);
 }
 
 bool ScRange::Intersects( const ScRange& rRange ) const
@@ -1777,7 +1777,7 @@ ScRefFlags ScRange::ParseAny( const OUString& rString, const ScDocument& rDoc,
     if ( (nRet & nValid) != nValid )
     {
         ScAddress aAdr(aStart);//initialize with currentPos as fallback for table number
-        nRet = aAdr.Parse( rString, &rDoc, rDetails );
+        nRet = aAdr.Parse( rString, rDoc, rDetails );
         if ( nRet & ScRefFlags::VALID )
             aStart = aEnd = aAdr;
     }
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index d9ceab95ea8f..c5c8c5d28ced 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -3232,7 +3232,7 @@ bool ScCompiler::IsSingleReference( const OUString& rName, const OUString* pErrR
     ScAddress aAddr( aPos );
     const ScAddress::Details aDetails( pConv->meConv, aPos );
     ScAddress::ExternalInfo aExtInfo;
-    ScRefFlags nFlags = aAddr.Parse( rName, &rDoc, aDetails,
+    ScRefFlags nFlags = aAddr.Parse( rName, rDoc, aDetails,
             &aExtInfo, &maExternalLinks, &mnCurrentSheetEndPos, pErrRef);
     // Something must be valid in order to recognize Sheet1.blah or blah.a1
     // as a (wrong) reference.
@@ -4154,7 +4154,7 @@ void ScCompiler::AutoCorrectParsedSymbol()
                 {
                     bChanged = true;
                     ScAddress aAdr;
-                    bOk &= ((aAdr.Parse( aRef[j], &rDoc, aDetails ) & nMask) == nMask);
+                    bOk &= ((aAdr.Parse( aRef[j], rDoc, aDetails ) & nMask) == nMask);
                 }
             }
             if ( bChanged && bOk )
diff --git a/sc/source/core/tool/rangenam.cxx b/sc/source/core/tool/rangenam.cxx
index 5fa5cf59c3db..314a899098fc 100644
--- a/sc/source/core/tool/rangenam.cxx
+++ b/sc/source/core/tool/rangenam.cxx
@@ -452,7 +452,7 @@ void ScRangeData::MakeValidName( const ScDocument& rDoc, OUString& rName )
         // Don't check Parse on VALID, any partial only VALID may result in
         // #REF! during compile later!
         while (aRange.Parse(rName, rDoc, details) != ScRefFlags::ZERO ||
-                aAddr.Parse(rName, &rDoc, details) != ScRefFlags::ZERO)
+                aAddr.Parse(rName, rDoc, details) != ScRefFlags::ZERO)
         {
             // Range Parse is partially valid also with invalid sheet name,
             // Address Parse ditto, during compile name would generate a #REF!
@@ -488,7 +488,7 @@ ScRangeData::IsNameValidType ScRangeData::IsNameValid( const OUString& rName, co
         // Don't check Parse on VALID, any partial only VALID may result in
         // #REF! during compile later!
         if (aRange.Parse(rName, rDoc, details) != ScRefFlags::ZERO ||
-             aAddr.Parse(rName, &rDoc, details) != ScRefFlags::ZERO )
+             aAddr.Parse(rName, rDoc, details) != ScRefFlags::ZERO )
         {
             return NAME_INVALID_CELL_REF;
         }
diff --git a/sc/source/core/tool/rangeutl.cxx b/sc/source/core/tool/rangeutl.cxx
index 7582479dc05d..d069c63280a8 100644
--- a/sc/source/core/tool/rangeutl.cxx
+++ b/sc/source/core/tool/rangeutl.cxx
@@ -447,11 +447,11 @@ bool ScRangeStringConverter::GetAddressFromString(
     GetTokenByOffset( sToken, rAddressStr, nOffset, cSeparator, cQuote );
     if( nOffset >= 0 )
     {
-        if ((rAddress.Parse( sToken, &rDocument, eConv ) & ScRefFlags::VALID) == ScRefFlags::VALID)
+        if ((rAddress.Parse( sToken, rDocument, eConv ) & ScRefFlags::VALID) == ScRefFlags::VALID)
             return true;
         ::formula::FormulaGrammar::AddressConvention eConvUI = rDocument.GetAddressConvention();
         if (eConv != eConvUI)
-            return ((rAddress.Parse(sToken, &rDocument, eConvUI) & ScRefFlags::VALID) == ScRefFlags::VALID);
+            return ((rAddress.Parse(sToken, rDocument, eConvUI) & ScRefFlags::VALID) == ScRefFlags::VALID);
     }
     return false;
 }
@@ -477,11 +477,11 @@ bool ScRangeStringConverter::GetRangeFromString(
         {
             if ( aUIString[0] == '.' )
                 aUIString = aUIString.copy( 1 );
-            bResult = (rRange.aStart.Parse( aUIString, &rDocument, eConv) & ScRefFlags::VALID) ==
+            bResult = (rRange.aStart.Parse( aUIString, rDocument, eConv) & ScRefFlags::VALID) ==
                                                                                                      ScRefFlags::VALID;
             ::formula::FormulaGrammar::AddressConvention eConvUI = rDocument.GetAddressConvention();
             if (!bResult && eConv != eConvUI)
-                bResult = (rRange.aStart.Parse(aUIString, &rDocument, eConvUI) & ScRefFlags::VALID) ==
+                bResult = (rRange.aStart.Parse(aUIString, rDocument, eConvUI) & ScRefFlags::VALID) ==
                                                                                                          ScRefFlags::VALID;
             rRange.aEnd = rRange.aStart;
         }
@@ -504,19 +504,19 @@ bool ScRangeStringConverter::GetRangeFromString(
             // This isn't parsed by ScRange, so try to parse the two Addresses then.
             if (!bResult)
             {
-                bResult = ((rRange.aStart.Parse( aUIString.copy(0, nIndex), &rDocument, eConv)
+                bResult = ((rRange.aStart.Parse( aUIString.copy(0, nIndex), rDocument, eConv)
                                & ScRefFlags::VALID) == ScRefFlags::VALID)
                           &&
-                          ((rRange.aEnd.Parse( aUIString.copy(nIndex+1), &rDocument, eConv)
+                          ((rRange.aEnd.Parse( aUIString.copy(nIndex+1), rDocument, eConv)
                                & ScRefFlags::VALID) == ScRefFlags::VALID);
 
                 ::formula::FormulaGrammar::AddressConvention eConvUI = rDocument.GetAddressConvention();
                 if (!bResult && eConv != eConvUI)
                 {
-                    bResult = ((rRange.aStart.Parse( aUIString.copy(0, nIndex), &rDocument, eConvUI)
+                    bResult = ((rRange.aStart.Parse( aUIString.copy(0, nIndex), rDocument, eConvUI)
                                    & ScRefFlags::VALID) == ScRefFlags::VALID)
                               &&
-                              ((rRange.aEnd.Parse( aUIString.copy(nIndex+1), &rDocument, eConvUI)
+                              ((rRange.aEnd.Parse( aUIString.copy(nIndex+1), rDocument, eConvUI)
                                    & ScRefFlags::VALID) == ScRefFlags::VALID);
                 }
             }
@@ -830,27 +830,27 @@ void ScRangeStringConverter::GetStringFromXMLRangeString( OUString& rString, con
 
             ScAddress::ExternalInfo aExtInfo1, aExtInfo2;
             ScAddress aCell1, aCell2;
-            ScRefFlags nRet = aCell1.Parse(aBeginCell, &rDoc, FormulaGrammar::CONV_OOO, &aExtInfo1);
+            ScRefFlags nRet = aCell1.Parse(aBeginCell, rDoc, FormulaGrammar::CONV_OOO, &aExtInfo1);
             if ((nRet & ScRefFlags::VALID) == ScRefFlags::ZERO)
             {
                 // first cell is invalid.
                 if (eConv == FormulaGrammar::CONV_OOO)
                     continue;
 
-                nRet = aCell1.Parse(aBeginCell, &rDoc, eConv, &aExtInfo1);
+                nRet = aCell1.Parse(aBeginCell, rDoc, eConv, &aExtInfo1);
                 if ((nRet & ScRefFlags::VALID) == ScRefFlags::ZERO)
                     // first cell is really invalid.
                     continue;
             }
 
-            nRet = aCell2.Parse(aEndCell, &rDoc, FormulaGrammar::CONV_OOO, &aExtInfo2);
+            nRet = aCell2.Parse(aEndCell, rDoc, FormulaGrammar::CONV_OOO, &aExtInfo2);
             if ((nRet & ScRefFlags::VALID) == ScRefFlags::ZERO)
             {
                 // second cell is invalid.
                 if (eConv == FormulaGrammar::CONV_OOO)
                     continue;
 
-                nRet = aCell2.Parse(aEndCell, &rDoc, eConv, &aExtInfo2);
+                nRet = aCell2.Parse(aEndCell, rDoc, eConv, &aExtInfo2);
                 if ((nRet & ScRefFlags::VALID) == ScRefFlags::ZERO)
                     // second cell is really invalid.
                     continue;
@@ -874,10 +874,10 @@ void ScRangeStringConverter::GetStringFromXMLRangeString( OUString& rString, con
             // Chart always saves ranges using CONV_OOO convention.
             ScAddress::ExternalInfo aExtInfo;
             ScAddress aCell;
-            ScRefFlags nRet = aCell.Parse(aToken, &rDoc, ::formula::FormulaGrammar::CONV_OOO, &aExtInfo);
+            ScRefFlags nRet = aCell.Parse(aToken, rDoc, ::formula::FormulaGrammar::CONV_OOO, &aExtInfo);
             if ((nRet & ScRefFlags::VALID) == ScRefFlags::ZERO )
             {
-                nRet = aCell.Parse(aToken, &rDoc, eConv, &aExtInfo);
+                nRet = aCell.Parse(aToken, rDoc, eConv, &aExtInfo);
                 if ((nRet & ScRefFlags::VALID) == ScRefFlags::ZERO)
                     continue;
             }
diff --git a/sc/source/core/tool/reffind.cxx b/sc/source/core/tool/reffind.cxx
index b4e7ea49eddf..9702da631d47 100644
--- a/sc/source/core/tool/reffind.cxx
+++ b/sc/source/core/tool/reffind.cxx
@@ -269,7 +269,7 @@ void ScRefFinder::ToggleRel( sal_Int32 nStartPos, sal_Int32 nEndPos )
         // Check the validity of the expression, and toggle the relative flag.
         ScAddress::Details aDetails(meConv, maPos.Row(), maPos.Col());
         ScAddress::ExternalInfo aExtInfo;
-        ScRefFlags nResult = aAddr.Parse(aExpr, &mrDoc, aDetails, &aExtInfo);
+        ScRefFlags nResult = aAddr.Parse(aExpr, mrDoc, aDetails, &aExtInfo);
         if ( nResult & ScRefFlags::VALID )
         {
             ScRefFlags nFlags;
@@ -292,7 +292,7 @@ void ScRefFinder::ToggleRel( sal_Int32 nStartPos, sal_Int32 nEndPos )
                 {
                     OUString aRef = aExpr.copy(nSep+1);
                     OUString aExtDocNameTabName = aExpr.copy(0, nSep+1);
-                    nResult = aAddr.Parse(aRef, &mrDoc, aDetails);
+                    nResult = aAddr.Parse(aRef, mrDoc, aDetails);
                     aAddr.SetTab(0); // force to first tab to avoid error on checking
                     nFlags = lcl_NextFlags( nResult );
                     aExpr = aExtDocNameTabName + aAddr.Format(nFlags, &mrDoc, aDetails);
diff --git a/sc/source/filter/oox/revisionfragment.cxx b/sc/source/filter/oox/revisionfragment.cxx
index 69d5786fe0ec..f6fee91c4051 100644
--- a/sc/source/filter/oox/revisionfragment.cxx
+++ b/sc/source/filter/oox/revisionfragment.cxx
@@ -164,7 +164,7 @@ private:
         OUString aRefStr = rAttribs.getString(XML_r, OUString());
         if (!aRefStr.isEmpty())
         {
-            mrPos.Parse(aRefStr, &getScDocument(), formula::FormulaGrammar::CONV_XL_OOX);
+            mrPos.Parse(aRefStr, getScDocument(), formula::FormulaGrammar::CONV_XL_OOX);
             if (mnSheetIndex != -1)
                 mrPos.SetTab(mnSheetIndex-1);
         }
diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx
index 142f78a5205b..ee426a17b223 100644
--- a/sc/source/filter/orcus/interface.cxx
+++ b/sc/source/filter/orcus/interface.cxx
@@ -164,7 +164,7 @@ os::src_address_t ScOrcusRefResolver::resolve_address(const char* p, size_t n)
     OUString aStr(p, n, mrGlobalSettings.getTextEncoding());
 
     ScAddress aAddr;
-    aAddr.Parse(aStr, &mrGlobalSettings.getDoc().getDoc(),
+    aAddr.Parse(aStr, mrGlobalSettings.getDoc().getDoc(),
         formula::FormulaGrammar::extractRefConvention(
             mrGlobalSettings.getCalcGrammar()));
 
diff --git a/sc/source/filter/xcl97/xcl97rec.cxx b/sc/source/filter/xcl97/xcl97rec.cxx
index 59073a9b3516..0f8afceceb8f 100644
--- a/sc/source/filter/xcl97/xcl97rec.cxx
+++ b/sc/source/filter/xcl97/xcl97rec.cxx
@@ -1193,26 +1193,26 @@ ScRefFlags parseRange(const OUString& rString, ScRange& rRange, const ScDocument
     return rRange.Parse(rString, rDoc, formula::FormulaGrammar::CONV_XL_R1C1);
 }
 
-ScRefFlags parseAddress(const OUString& rString, ScAddress& rAddress, const ScDocument* pDoc)
+ScRefFlags parseAddress(const OUString& rString, ScAddress& rAddress, const ScDocument& rDoc)
 {
     // start with the address convention set in the document
-    formula::FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention();
-    ScRefFlags nResult = rAddress.Parse(rString, pDoc, eConv);
+    formula::FormulaGrammar::AddressConvention eConv = rDoc.GetAddressConvention();
+    ScRefFlags nResult = rAddress.Parse(rString, rDoc, eConv);
     if ( nResult & ScRefFlags::VALID )
         return nResult;
 
     // try the default calc address convention
-    nResult = rAddress.Parse(rString, pDoc);
+    nResult = rAddress.Parse(rString, rDoc);
     if ( nResult & ScRefFlags::VALID )
         return nResult;
 
     // try excel a1
-    nResult = rAddress.Parse(rString, pDoc, formula::FormulaGrammar::CONV_XL_A1);
+    nResult = rAddress.Parse(rString, rDoc, formula::FormulaGrammar::CONV_XL_A1);
     if ( nResult & ScRefFlags::VALID )
         return nResult;
 
     // try r1c1
-    return rAddress.Parse(rString, pDoc, formula::FormulaGrammar::CONV_XL_R1C1);
+    return rAddress.Parse(rString, rDoc, formula::FormulaGrammar::CONV_XL_R1C1);
 }
 
 void transformURL(const OUString& rOldURL, OUString& rNewURL, const ScDocument& rDoc)
@@ -1235,7 +1235,7 @@ void transformURL(const OUString& rOldURL, OUString& rNewURL, const ScDocument&
         }
         else
         {
-            nResult = parseAddress(aAddressString, aAddress, &rDoc);
+            nResult = parseAddress(aAddressString, aAddress, rDoc);
             if( nResult & ScRefFlags::VALID )
             {
                 OUString aString = aAddress.Format(nResult, &rDoc, formula::FormulaGrammar::CONV_XL_OOX);
diff --git a/sc/source/filter/xml/xmlcondformat.cxx b/sc/source/filter/xml/xmlcondformat.cxx
index 944672bf0def..9c3ca0904b6c 100644
--- a/sc/source/filter/xml/xmlcondformat.cxx
+++ b/sc/source/filter/xml/xmlcondformat.cxx
@@ -258,7 +258,7 @@ void SAL_CALL ScXMLConditionalFormatContext::endFastElement( sal_Int32 /*nElemen
         ScAddress aSrcPos;
         OUString aSrcString = pCondFormatEntry->GetSrcString();
         if ( !aSrcString.isEmpty() )
-            aSrcPos.Parse( aSrcString, pDoc );
+            aSrcPos.Parse( aSrcString, *pDoc );
         ScCompiler aComp( *pDoc, aSrcPos );
         aComp.SetGrammar( formula::FormulaGrammar::GRAM_ODFF );
         pTokens = aComp.CompileString( pCondFormatEntry->GetExpression(aSrcPos, 0), "" );
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index f2e36c577f40..d746b464ab78 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -2328,7 +2328,7 @@ static ScNameInputType lcl_GetInputType( const OUString& rText )
             eRet = SC_MANAGE_NAMES;
         else if ( aRange.Parse( rText, rDoc, eConv ) & ScRefFlags::VALID )
             eRet = SC_NAME_INPUT_RANGE;
-        else if ( aAddress.Parse( rText, &rDoc, eConv ) & ScRefFlags::VALID )
+        else if ( aAddress.Parse( rText, rDoc, eConv ) & ScRefFlags::VALID )
             eRet = SC_NAME_INPUT_CELL;
         else if ( ScRangeUtil::MakeRangeFromName( rText, rDoc, nTab, aRange, RUTL_NAMES, eConv ) )
             eRet = SC_NAME_INPUT_NAMEDRANGE;
diff --git a/sc/source/ui/dbgui/PivotLayoutDialog.cxx b/sc/source/ui/dbgui/PivotLayoutDialog.cxx
index 2b1ab6abc576..a813a427f93e 100644
--- a/sc/source/ui/dbgui/PivotLayoutDialog.cxx
+++ b/sc/source/ui/dbgui/PivotLayoutDialog.cxx
@@ -590,7 +590,7 @@ bool ScPivotLayoutDialog::GetDestination(ScRange& aDestinationRange, bool& bToNe
     else if (mxDestinationRadioSelection->get_active())
     {
         ScAddress aAddress;
-        aAddress.Parse(mxDestinationEdit->GetText(), &mrDocument, maAddressDetails);
+        aAddress.Parse(mxDestinationEdit->GetText(), mrDocument, maAddressDetails);
         aDestinationRange = ScRange(aAddress);
     }
     else
diff --git a/sc/source/ui/dbgui/filtdlg.cxx b/sc/source/ui/dbgui/filtdlg.cxx
index 46f32bf78fd6..ff4653f8d971 100644
--- a/sc/source/ui/dbgui/filtdlg.cxx
+++ b/sc/source/ui/dbgui/filtdlg.cxx
@@ -579,7 +579,7 @@ ScQueryItem* ScFilterDlg::GetOutputItem()
     if ( m_xBtnCopyResult->get_active() )
     {
         ScRefFlags nResult = theCopyPos.Parse(
-            m_xEdCopyArea->GetText(), pDoc, pDoc->GetAddressConvention());
+            m_xEdCopyArea->GetText(), *pDoc, pDoc->GetAddressConvention());
         bCopyPosOk = (nResult & ScRefFlags::VALID) == ScRefFlags::VALID;
     }
 
diff --git a/sc/source/ui/dbgui/foptmgr.cxx b/sc/source/ui/dbgui/foptmgr.cxx
index cecf9be64afc..da323ed2f8bb 100644
--- a/sc/source/ui/dbgui/foptmgr.cxx
+++ b/sc/source/ui/dbgui/foptmgr.cxx
@@ -192,7 +192,7 @@ bool ScFilterOptionsMgr::VerifyPosStr( const OUString& rPosStr ) const
     if ( -1 != nColonPos )
         aPosStr = aPosStr.copy( 0, nColonPos );
 
-    ScRefFlags nResult = ScAddress().Parse( aPosStr, pDoc, pDoc->GetAddressConvention() );
+    ScRefFlags nResult = ScAddress().Parse( aPosStr, *pDoc, pDoc->GetAddressConvention() );
 
     return (nResult & ScRefFlags::VALID) == ScRefFlags::VALID;
 }
@@ -219,7 +219,7 @@ IMPL_LINK( ScFilterOptionsMgr, EdAreaModifyHdl, formula::RefEdit&, rEd, void )
         return;
 
     OUString  theCurPosStr = rEd.GetText();
-    ScRefFlags  nResult = ScAddress().Parse( theCurPosStr, pDoc, pDoc->GetAddressConvention() );
+    ScRefFlags  nResult = ScAddress().Parse( theCurPosStr, *pDoc, pDoc->GetAddressConvention() );
 
     if ( (nResult & ScRefFlags::VALID) == ScRefFlags::VALID)
     {
diff --git a/sc/source/ui/dbgui/sfiltdlg.cxx b/sc/source/ui/dbgui/sfiltdlg.cxx
index cd2c84a5b885..836767891b08 100644
--- a/sc/source/ui/dbgui/sfiltdlg.cxx
+++ b/sc/source/ui/dbgui/sfiltdlg.cxx
@@ -272,7 +272,7 @@ IMPL_LINK(ScSpecialFilterDlg, EndDlgHdl, weld::Button&, rBtn, void)
             if ( -1 != nColonPos )
                 theCopyStr = theCopyStr.copy( 0, nColonPos );
 
-            ScRefFlags nResult = theAdrCopy.Parse( theCopyStr, pDoc, eConv );
+            ScRefFlags nResult = theAdrCopy.Parse( theCopyStr, *pDoc, eConv );
 
             if ( (nResult & ScRefFlags::VALID) == ScRefFlags::ZERO )
             {
diff --git a/sc/source/ui/dbgui/tpsort.cxx b/sc/source/ui/dbgui/tpsort.cxx
index a0f7c14a923c..462d60efd623 100644
--- a/sc/source/ui/dbgui/tpsort.cxx
+++ b/sc/source/ui/dbgui/tpsort.cxx
@@ -746,7 +746,7 @@ DeactivateRC ScTabPageSortOptions::DeactivatePage( SfxItemSet* pSetP )
             thePos.SetTab( pViewData->GetTabNo() );
         }
 
-        ScRefFlags nResult = thePos.Parse( thePosStr, pDoc, pDoc->GetAddressConvention() );
+        ScRefFlags nResult = thePos.Parse( thePosStr, *pDoc, pDoc->GetAddressConvention() );
 
         bPosInputOk = (nResult & ScRefFlags::VALID) == ScRefFlags::VALID;
 
@@ -848,7 +848,7 @@ IMPL_LINK_NOARG(ScTabPageSortOptions, SortDirHdl, weld::ToggleButton&, void)
 void ScTabPageSortOptions::EdOutPosModHdl()
 {
     OUString  theCurPosStr = m_xEdOutPos->get_text();
-    ScRefFlags  nResult = ScAddress().Parse( theCurPosStr, pDoc, pDoc->GetAddressConvention() );
+    ScRefFlags  nResult = ScAddress().Parse( theCurPosStr, *pDoc, pDoc->GetAddressConvention() );
 
     if ( (nResult & ScRefFlags::VALID) != ScRefFlags::VALID )
         return;
diff --git a/sc/source/ui/dialogs/searchresults.cxx b/sc/source/ui/dialogs/searchresults.cxx
index 0f94c64f32e7..c855b7db87d7 100644
--- a/sc/source/ui/dialogs/searchresults.cxx
+++ b/sc/source/ui/dialogs/searchresults.cxx
@@ -224,7 +224,7 @@ IMPL_LINK_NOARG( SearchResultsDlg, ListSelectHdl, weld::TreeView&, void )
         return;
 
     ScAddress aPos;
-    ScRefFlags nRes = aPos.Parse(aPosStr, mpDoc, mpDoc->GetAddressConvention());
+    ScRefFlags nRes = aPos.Parse(aPosStr, *mpDoc, mpDoc->GetAddressConvention());
     if (!(nRes & ScRefFlags::VALID))
         // Invalid address string.
         return;
diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx
index 8b752a0f5411..ecce1c5da91f 100644
--- a/sc/source/ui/docshell/docsh4.cxx
+++ b/sc/source/ui/docshell/docsh4.cxx
@@ -265,7 +265,7 @@ void ScDocShell::Execute( SfxRequest& rReq )
                     if ( !pDBColl || !pDBColl->getNamedDBs().findByUpperName(ScGlobal::getCharClassPtr()->uppercase(sTarget)) )
                     {
                         ScAddress aPos;
-                        if ( aPos.Parse( sTarget, &m_aDocument, m_aDocument.GetAddressConvention() ) & ScRefFlags::VALID )
+                        if ( aPos.Parse( sTarget, m_aDocument, m_aDocument.GetAddressConvention() ) & ScRefFlags::VALID )
                         {
                             bMakeArea = true;
                             if (bUndo)
@@ -2460,7 +2460,7 @@ bool ScDocShell::DdeSetData( const OUString& rItem,
     // into ODF.
     ScRange aRange;
     bool bValid = ( (aRange.Parse(aPos, m_aDocument, formula::FormulaGrammar::CONV_OOO ) & ScRefFlags::VALID) ||
-                    (aRange.aStart.Parse(aPos, &m_aDocument, formula::FormulaGrammar::CONV_OOO) & ScRefFlags::VALID) );
+                    (aRange.aStart.Parse(aPos, m_aDocument, formula::FormulaGrammar::CONV_OOO) & ScRefFlags::VALID) );
 
     ScServerObject* pObj = nullptr;            // NULL = error
     if ( bValid )
diff --git a/sc/source/ui/docshell/impex.cxx b/sc/source/ui/docshell/impex.cxx
index 68df1169a93f..4162f6869bc9 100644
--- a/sc/source/ui/docshell/impex.cxx
+++ b/sc/source/ui/docshell/impex.cxx
@@ -186,7 +186,7 @@ ScImportExport::ScImportExport( ScDocument& r, const OUString& rPos )
     if (aRange.Parse(aPos, rDoc, eConv) & ScRefFlags::VALID)
         bSingle = false;
     // Cell?
-    else if (aRange.aStart.Parse(aPos, &rDoc, eConv) & ScRefFlags::VALID)
+    else if (aRange.aStart.Parse(aPos, rDoc, eConv) & ScRefFlags::VALID)
         aRange.aEnd = aRange.aStart;
     else
         bAll = true;
diff --git a/sc/source/ui/docshell/servobj.cxx b/sc/source/ui/docshell/servobj.cxx
index 84287b3f93d1..abec7bf8eb15 100644
--- a/sc/source/ui/docshell/servobj.cxx
+++ b/sc/source/ui/docshell/servobj.cxx
@@ -91,7 +91,7 @@ ScServerObject::ScServerObject( ScDocShell* pShell, const OUString& rItem ) :
         {
             // area reference
         }
-        else if ( aRange.aStart.Parse( rItem, &rDoc, FormulaGrammar::CONV_OOO ) & ScRefFlags::VALID )
+        else if ( aRange.aStart.Parse( rItem, rDoc, FormulaGrammar::CONV_OOO ) & ScRefFlags::VALID )
         {
             // cell reference
             aRange.aEnd = aRange.aStart;
diff --git a/sc/source/ui/miscdlgs/solvrdlg.cxx b/sc/source/ui/miscdlgs/solvrdlg.cxx
index e28d8625ab37..b6ffca11ea75 100644
--- a/sc/source/ui/miscdlgs/solvrdlg.cxx
+++ b/sc/source/ui/miscdlgs/solvrdlg.cxx
@@ -198,8 +198,8 @@ IMPL_LINK(ScSolverDlg, BtnHdl, weld::Button&, rBtn, void)
         // 3. has a valid target value been entered?
 
         const formula::FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention();
-        ScRefFlags  nRes1 = theFormulaCell .Parse( m_xEdFormulaCell->GetText(),  pDoc, eConv );
-        ScRefFlags  nRes2 = theVariableCell.Parse( m_xEdVariableCell->GetText(), pDoc, eConv );
+        ScRefFlags  nRes1 = theFormulaCell .Parse( m_xEdFormulaCell->GetText(),  *pDoc, eConv );
+        ScRefFlags  nRes2 = theVariableCell.Parse( m_xEdVariableCell->GetText(), *pDoc, eConv );
 
         if ( (nRes1 & ScRefFlags::VALID) == ScRefFlags::VALID )
         {
diff --git a/sc/source/ui/navipi/navcitem.cxx b/sc/source/ui/navipi/navcitem.cxx
index 8e11edfca0a8..ba996ce1df79 100644
--- a/sc/source/ui/navipi/navcitem.cxx
+++ b/sc/source/ui/navipi/navcitem.cxx
@@ -51,7 +51,7 @@ void ScNavigatorControllerItem::StateChanged( sal_uInt16 /* nSID */, SfxItemStat
                 {
                     const OUString&  aAddress( pCellPosItem->GetValue() );
                     ScAddress aScAddress;
-                    aScAddress.Parse(aAddress, &pViewData->GetDocument());
+                    aScAddress.Parse(aAddress, pViewData->GetDocument());
 
                     SCCOL nCol = aScAddress.Col()+1;
                     SCROW nRow = aScAddress.Row()+1;
diff --git a/sc/source/ui/pagedlg/areasdlg.cxx b/sc/source/ui/pagedlg/areasdlg.cxx
index 42223748f0f9..1a3a34cfc9f9 100644
--- a/sc/source/ui/pagedlg/areasdlg.cxx
+++ b/sc/source/ui/pagedlg/areasdlg.cxx
@@ -335,7 +335,7 @@ bool ScPrintAreasDlg::Impl_CheckRefStrings()
             ScRefFlags nResult = aRange.Parse( aOne, *pDoc, eConv );
             if ((nResult & nValidRange) != nValidRange)
             {
-                ScRefFlags nAddrResult = aAddr.Parse( aOne, pDoc, eConv );
+                ScRefFlags nAddrResult = aAddr.Parse( aOne, *pDoc, eConv );
                 if ((nAddrResult & nValidAddr) != nValidAddr)
                 {
                     bPrintAreaOk = false;
diff --git a/sc/source/ui/unoobj/addruno.cxx b/sc/source/ui/unoobj/addruno.cxx
index 4a7410b89281..0e307071d9ef 100644
--- a/sc/source/ui/unoobj/addruno.cxx
+++ b/sc/source/ui/unoobj/addruno.cxx
@@ -79,7 +79,7 @@ bool ScAddressConversionObj::ParseUIString( const OUString& rUIString, ::formula
     }
     else
     {
-        ScRefFlags nResult = aRange.aStart.Parse( rUIString, &rDoc, eConv );
+        ScRefFlags nResult = aRange.aStart.Parse( rUIString, rDoc, eConv );
         if ( nResult & ScRefFlags::VALID )
         {
             if ( ( nResult & ScRefFlags::TAB_3D ) == ScRefFlags::ZERO )
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index 237441bffef2..7799a28254ed 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -1401,7 +1401,7 @@ static bool lcl_ParseTarget( const OUString& rTarget, ScRange& rTargetRange, too
     {
         bRangeValid = true;             // range reference
     }
-    else if ( aAddress.Parse( rTarget, &rDoc ) & ScRefFlags::VALID )
+    else if ( aAddress.Parse( rTarget, rDoc ) & ScRefFlags::VALID )
     {
         rTargetRange = aAddress;
         bRangeValid = true;             // cell reference
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index f9c1ab975e35..8492d8d4e227 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -818,7 +818,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                         ScAddress aScAddress;
                         OUString aArg = static_cast<const SfxStringItem*>(pItem)->GetValue();
 
-                        if( aScAddress.Parse( aArg, &rDoc, rDoc.GetAddressConvention() ) & ScRefFlags::VALID )
+                        if( aScAddress.Parse( aArg, rDoc, rDoc.GetAddressConvention() ) & ScRefFlags::VALID )
                         {
                             nFillRow = aScAddress.Row();
                             nFillCol = aScAddress.Col();
diff --git a/sc/source/ui/view/drawvie4.cxx b/sc/source/ui/view/drawvie4.cxx
index e4f12a36626a..3066fe253ba9 100644
--- a/sc/source/ui/view/drawvie4.cxx
+++ b/sc/source/ui/view/drawvie4.cxx
@@ -252,7 +252,7 @@ void getOleSourceRanges(const SdrMarkList& rMarkList, bool& rAnyOle, bool& rOneO
             for(size_t i = 0; i < aRange.size(); ++i)
                 pRanges->push_back(aRange[i]);
         }
-        else if (aAddr.Parse(rRangeRep, pDoc, pDoc->GetAddressConvention()) & ScRefFlags::VALID)
+        else if (aAddr.Parse(rRangeRep, *pDoc, pDoc->GetAddressConvention()) & ScRefFlags::VALID)
             pRanges->push_back(aAddr);
     }
 
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index e858a9337041..dad20101c4fc 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -2284,7 +2284,7 @@ void ScGridWindow::MouseButtonUp( const MouseEvent& rMEvt )
             {
                 ScAddress aTempAddr;
                 ScAddress::ExternalInfo aExtInfo;
-                ScRefFlags nRes = aTempAddr.Parse(aUrl, &rDoc, rDoc.GetAddressConvention(), &aExtInfo);
+                ScRefFlags nRes = aTempAddr.Parse(aUrl, rDoc, rDoc.GetAddressConvention(), &aExtInfo);
                 if (!(nRes & ScRefFlags::VALID))
                 {
                     // Not a reference string. Pass it through unmodified.
diff --git a/sc/source/ui/view/tabvwsh3.cxx b/sc/source/ui/view/tabvwsh3.cxx
index 5d94edb3ba99..cb607ed841f1 100644
--- a/sc/source/ui/view/tabvwsh3.cxx
+++ b/sc/source/ui/view/tabvwsh3.cxx
@@ -99,7 +99,7 @@ namespace
             return aRet;
         }
 
-        aRet.nResult = rScAddress.Parse(aAddress, &rDoc, eConv);
+        aRet.nResult = rScAddress.Parse(aAddress, rDoc, eConv);
         if (aRet.nResult & ScRefFlags::VALID)
         {
             aRet.eDetected = DetectFlags::ADDRESS;
@@ -114,7 +114,7 @@ namespace
             return aRet;
         }
 
-        aRet.nResult = rScAddress.Parse(aAddress, &rDoc);
+        aRet.nResult = rScAddress.Parse(aAddress, rDoc);
         if (aRet.nResult & ScRefFlags::VALID)
         {
             aRet.eDetected = DetectFlags::ADDRESS;
@@ -130,7 +130,7 @@ namespace
         }
 
         // try the Excel A1 address convention
-        aRet.nResult = rScAddress.Parse(aAddress, &rDoc, formula::FormulaGrammar::CONV_XL_A1);
+        aRet.nResult = rScAddress.Parse(aAddress, rDoc, formula::FormulaGrammar::CONV_XL_A1);
         if (aRet.nResult & ScRefFlags::VALID)
         {
             aRet.eDetected = DetectFlags::ADDRESS;
@@ -145,7 +145,7 @@ namespace
             return aRet;
         }
 
-        aRet.nResult = rScAddress.Parse(aAddress, &rDoc, formula::FormulaGrammar::CONV_XL_R1C1);
+        aRet.nResult = rScAddress.Parse(aAddress, rDoc, formula::FormulaGrammar::CONV_XL_R1C1);
         if (aRet.nResult & ScRefFlags::VALID)
         {
             aRet.eDetected = DetectFlags::ADDRESS;
diff --git a/sc/source/ui/xmlsource/xmlsourcedlg.cxx b/sc/source/ui/xmlsource/xmlsourcedlg.cxx
index 167ecae315ae..edc8ca3d5dcb 100644
--- a/sc/source/ui/xmlsource/xmlsourcedlg.cxx
+++ b/sc/source/ui/xmlsource/xmlsourcedlg.cxx
@@ -559,7 +559,7 @@ void ScXMLSourceDlg::RefEditModified()
 
     // Check if the address is valid.
     ScAddress aLinkedPos;
-    ScRefFlags nRes = aLinkedPos.Parse(aRefStr, mpDoc, mpDoc->GetAddressConvention());
+    ScRefFlags nRes = aLinkedPos.Parse(aRefStr, *mpDoc, mpDoc->GetAddressConvention());
     bool bValid = ( (nRes & ScRefFlags::VALID) == ScRefFlags::VALID );
 
     // TODO: For some unknown reason, setting the ref invalid will hide the text altogether.


More information about the Libreoffice-commits mailing list