diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2014-10-22 17:09:03 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2014-10-23 09:30:09 +0200 |
commit | 19d2f4211928de8cae2d46a8161f2d9081371785 (patch) | |
tree | 3e2313b9c5b84ddd52609b61467f1a4200c7d891 | |
parent | 7281580ef0cdfa1ba0858f1f918a6735108d124f (diff) |
Make ScToken::GetSingleRef etc. return * instead of &
...so that default implementations can return nullptr without further ado
Change-Id: Idc8778fe868efa00b1de597a54aa07a2e6fa3bc0
28 files changed, 279 insertions, 300 deletions
diff --git a/sc/inc/token.hxx b/sc/inc/token.hxx index 54c5dc7f1427..72db3651f230 100644 --- a/sc/inc/token.hxx +++ b/sc/inc/token.hxx @@ -78,12 +78,12 @@ public: Any other non-overloaded method pops up an assertion. */ - virtual const ScSingleRefData& GetSingleRef() const; - virtual ScSingleRefData& GetSingleRef(); - virtual const ScComplexRefData& GetDoubleRef() const; - virtual ScComplexRefData& GetDoubleRef(); - virtual const ScSingleRefData& GetSingleRef2() const; - virtual ScSingleRefData& GetSingleRef2(); + virtual const ScSingleRefData* GetSingleRef() const; + virtual ScSingleRefData* GetSingleRef(); + virtual const ScComplexRefData* GetDoubleRef() const; + virtual ScComplexRefData* GetDoubleRef(); + virtual const ScSingleRefData* GetSingleRef2() const; + virtual ScSingleRefData* GetSingleRef2(); virtual const ScMatrix* GetMatrix() const; virtual ScMatrix* GetMatrix(); virtual ScJumpMatrix* GetJumpMatrix() const; @@ -128,8 +128,8 @@ public: ScToken( formula::svSingleRef, e ), aSingleRef( r ) {} ScSingleRefToken( const ScSingleRefToken& r ) : ScToken( r ), aSingleRef( r.aSingleRef ) {} - virtual const ScSingleRefData& GetSingleRef() const SAL_OVERRIDE; - virtual ScSingleRefData& GetSingleRef() SAL_OVERRIDE; + virtual const ScSingleRefData* GetSingleRef() const SAL_OVERRIDE; + virtual ScSingleRefData* GetSingleRef() SAL_OVERRIDE; virtual bool TextEqual( const formula::FormulaToken& rToken ) const SAL_OVERRIDE; virtual bool operator==( const formula::FormulaToken& rToken ) const SAL_OVERRIDE; virtual FormulaToken* Clone() const SAL_OVERRIDE { return new ScSingleRefToken(*this); } @@ -152,12 +152,12 @@ public: } ScDoubleRefToken( const ScDoubleRefToken& r ) : ScToken( r ), aDoubleRef( r.aDoubleRef ) {} - virtual const ScSingleRefData& GetSingleRef() const SAL_OVERRIDE; - virtual ScSingleRefData& GetSingleRef() SAL_OVERRIDE; - virtual const ScComplexRefData& GetDoubleRef() const SAL_OVERRIDE; - virtual ScComplexRefData& GetDoubleRef() SAL_OVERRIDE; - virtual const ScSingleRefData& GetSingleRef2() const SAL_OVERRIDE; - virtual ScSingleRefData& GetSingleRef2() SAL_OVERRIDE; + virtual const ScSingleRefData* GetSingleRef() const SAL_OVERRIDE; + virtual ScSingleRefData* GetSingleRef() SAL_OVERRIDE; + virtual const ScComplexRefData* GetDoubleRef() const SAL_OVERRIDE; + virtual ScComplexRefData* GetDoubleRef() SAL_OVERRIDE; + virtual const ScSingleRefData* GetSingleRef2() const SAL_OVERRIDE; + virtual ScSingleRefData* GetSingleRef2() SAL_OVERRIDE; virtual bool TextEqual( const formula::FormulaToken& rToken ) const SAL_OVERRIDE; virtual bool operator==( const formula::FormulaToken& rToken ) const SAL_OVERRIDE; virtual FormulaToken* Clone() const SAL_OVERRIDE { return new ScDoubleRefToken(*this); } @@ -196,8 +196,8 @@ public: virtual sal_uInt8 GetByte() const SAL_OVERRIDE; virtual const ScMatrix* GetMatrix() const SAL_OVERRIDE; virtual ScMatrix* GetMatrix() SAL_OVERRIDE; - virtual const ScComplexRefData& GetDoubleRef() const SAL_OVERRIDE; - virtual ScComplexRefData& GetDoubleRef() SAL_OVERRIDE; + virtual const ScComplexRefData* GetDoubleRef() const SAL_OVERRIDE; + virtual ScComplexRefData* GetDoubleRef() SAL_OVERRIDE; virtual bool operator==( const formula::FormulaToken& rToken ) const SAL_OVERRIDE; virtual FormulaToken* Clone() const SAL_OVERRIDE; }; @@ -216,8 +216,8 @@ public: virtual sal_uInt16 GetIndex() const SAL_OVERRIDE; virtual svl::SharedString GetString() const SAL_OVERRIDE; - virtual const ScSingleRefData& GetSingleRef() const SAL_OVERRIDE; - virtual ScSingleRefData& GetSingleRef() SAL_OVERRIDE; + virtual const ScSingleRefData* GetSingleRef() const SAL_OVERRIDE; + virtual ScSingleRefData* GetSingleRef() SAL_OVERRIDE; virtual bool operator==( const formula::FormulaToken& rToken ) const SAL_OVERRIDE; virtual FormulaToken* Clone() const SAL_OVERRIDE { return new ScExternalSingleRefToken(*this); } }; @@ -236,12 +236,12 @@ public: virtual sal_uInt16 GetIndex() const SAL_OVERRIDE; virtual svl::SharedString GetString() const SAL_OVERRIDE; - virtual const ScSingleRefData& GetSingleRef() const SAL_OVERRIDE; - virtual ScSingleRefData& GetSingleRef() SAL_OVERRIDE; - virtual const ScSingleRefData& GetSingleRef2() const SAL_OVERRIDE; - virtual ScSingleRefData& GetSingleRef2() SAL_OVERRIDE; - virtual const ScComplexRefData& GetDoubleRef() const SAL_OVERRIDE; - virtual ScComplexRefData& GetDoubleRef() SAL_OVERRIDE; + virtual const ScSingleRefData* GetSingleRef() const SAL_OVERRIDE; + virtual ScSingleRefData* GetSingleRef() SAL_OVERRIDE; + virtual const ScSingleRefData* GetSingleRef2() const SAL_OVERRIDE; + virtual ScSingleRefData* GetSingleRef2() SAL_OVERRIDE; + virtual const ScComplexRefData* GetDoubleRef() const SAL_OVERRIDE; + virtual ScComplexRefData* GetDoubleRef() SAL_OVERRIDE; virtual bool operator==( const formula::FormulaToken& rToken ) const SAL_OVERRIDE; virtual FormulaToken* Clone() const SAL_OVERRIDE { return new ScExternalDoubleRefToken(*this); } }; @@ -431,14 +431,14 @@ public: formula::StackVar eType = rT.GetType(); if ( eType == formula::svSingleRef || eType == formula::svExternalSingleRef ) { - pS = &rT.GetSingleRef(); + pS = rT.GetSingleRef(); aDub.Ref1 = aDub.Ref2 = *pS; pD = &aDub; } else { pS = 0; - pD = &rT.GetDoubleRef(); + pD = rT.GetDoubleRef(); } } SingleDoubleRefModifier( ScSingleRefData& rS ) @@ -463,10 +463,10 @@ public: const ScSingleRefData& Ref2; SingleDoubleRefProvider( const ScToken& r ) - : Ref1( r.GetSingleRef() ), + : Ref1( *r.GetSingleRef() ), Ref2( (r.GetType() == formula::svDoubleRef || r.GetType() == formula::svExternalDoubleRef) ? - r.GetDoubleRef().Ref2 : Ref1 ) + r.GetDoubleRef()->Ref2 : Ref1 ) {} SingleDoubleRefProvider( const ScSingleRefData& r ) : Ref1( r ), Ref2( r ) diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx index d321617ea5ba..7258326a7375 100644 --- a/sc/qa/unit/ucalc.cxx +++ b/sc/qa/unit/ucalc.cxx @@ -1274,7 +1274,7 @@ bool checkRelativeRefToken(ScDocument& rDoc, const ScAddress& rPos, SCsCOL nRelC if (!pToken) return false; - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); if (!rRef.IsColRel() || rRef.Col() != nRelCol) { cerr << "Unexpected relative column address." << endl; @@ -1296,7 +1296,7 @@ bool checkDeletedRefToken(ScDocument& rDoc, const ScAddress& rPos) if (!pToken) return false; - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); if (!rRef.IsDeleted()) { cerr << "Deleted reference is expected, but it's still a valid reference." << endl; @@ -4189,7 +4189,7 @@ bool hasRange(const std::vector<ScTokenRef>& rRefTokens, const ScRange& rRange, { case formula::svSingleRef: { - ScSingleRefData aData = p->GetSingleRef(); + ScSingleRefData aData = *p->GetSingleRef(); if (rRange.aStart != rRange.aEnd) break; @@ -4200,7 +4200,7 @@ bool hasRange(const std::vector<ScTokenRef>& rRefTokens, const ScRange& rRange, break; case formula::svDoubleRef: { - ScComplexRefData aData = p->GetDoubleRef(); + ScComplexRefData aData = *p->GetDoubleRef(); ScRange aThis = aData.toAbs(rPos); if (aThis == rRange) return true; diff --git a/sc/qa/unit/ucalc_sharedformula.cxx b/sc/qa/unit/ucalc_sharedformula.cxx index d6ccdc53b4b2..e4e1a12d9b69 100644 --- a/sc/qa/unit/ucalc_sharedformula.cxx +++ b/sc/qa/unit/ucalc_sharedformula.cxx @@ -874,7 +874,7 @@ void Test::testSharedFormulasDeleteColumns() CPPUNIT_ASSERT(pCode && pCode->GetLen() == 1); const FormulaToken* pToken = pCode->GetArray()[0]; CPPUNIT_ASSERT(pToken->GetType() == svSingleRef); - const ScSingleRefData* pSRef = &static_cast<const ScToken*>(pToken)->GetSingleRef(); + const ScSingleRefData* pSRef = static_cast<const ScToken*>(pToken)->GetSingleRef(); CPPUNIT_ASSERT(pSRef->IsColDeleted()); CPPUNIT_ASSERT_EQUAL(static_cast<SCROW>(0), pSRef->toAbs(ScAddress(1,0,0)).Row()); diff --git a/sc/source/core/data/colorscale.cxx b/sc/source/core/data/colorscale.cxx index d4726956b3bb..809c186717d0 100644 --- a/sc/source/core/data/colorscale.cxx +++ b/sc/source/core/data/colorscale.cxx @@ -55,7 +55,7 @@ void ScFormulaListener::startListening(ScTokenArray* pArr, const ScAddress& rPos { case formula::svSingleRef: { - ScAddress aCell = t->GetSingleRef().toAbs(rPos); + ScAddress aCell = t->GetSingleRef()->toAbs(rPos); if (aCell.IsValid()) mpDoc->StartListeningCell(aCell, this); @@ -64,8 +64,8 @@ void ScFormulaListener::startListening(ScTokenArray* pArr, const ScAddress& rPos break; case formula::svDoubleRef: { - const ScSingleRefData& rRef1 = t->GetSingleRef(); - const ScSingleRefData& rRef2 = t->GetSingleRef2(); + const ScSingleRefData& rRef1 = *t->GetSingleRef(); + const ScSingleRefData& rRef2 = *t->GetSingleRef2(); ScAddress aCell1 = rRef1.toAbs(rPos); ScAddress aCell2 = rRef2.toAbs(rPos); if (aCell1.IsValid() && aCell2.IsValid()) diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx index 10170970e4ca..f9a979606b15 100644 --- a/sc/source/core/data/conditio.cxx +++ b/sc/source/core/data/conditio.cxx @@ -89,7 +89,7 @@ static bool lcl_HasRelRef( ScDocument* pDoc, ScTokenArray* pFormula, sal_uInt16 { case svDoubleRef: { - ScSingleRefData& rRef2 = static_cast<ScToken*>(t)->GetDoubleRef().Ref2; + ScSingleRefData& rRef2 = static_cast<ScToken*>(t)->GetDoubleRef()->Ref2; if ( rRef2.IsColRel() || rRef2.IsRowRel() || rRef2.IsTabRel() ) return true; } @@ -97,7 +97,7 @@ static bool lcl_HasRelRef( ScDocument* pDoc, ScTokenArray* pFormula, sal_uInt16 case svSingleRef: { - ScSingleRefData& rRef1 = static_cast<ScToken*>(t)->GetSingleRef(); + ScSingleRefData& rRef1 = *static_cast<ScToken*>(t)->GetSingleRef(); if ( rRef1.IsColRel() || rRef1.IsRowRel() || rRef1.IsTabRel() ) return true; } @@ -1452,7 +1452,7 @@ ScAddress ScConditionEntry::GetValidSrcPos() const ScToken* t; while ( ( t = static_cast<ScToken*>(pFormula->GetNextReference()) ) != NULL ) { - ScSingleRefData& rRef1 = t->GetSingleRef(); + ScSingleRefData& rRef1 = *t->GetSingleRef(); ScAddress aAbs = rRef1.toAbs(aSrcPos); if (!rRef1.IsTabDeleted()) { @@ -1463,7 +1463,7 @@ ScAddress ScConditionEntry::GetValidSrcPos() const } if ( t->GetType() == svDoubleRef ) { - ScSingleRefData& rRef2 = t->GetDoubleRef().Ref2; + ScSingleRefData& rRef2 = t->GetDoubleRef()->Ref2; aAbs = rRef2.toAbs(aSrcPos); if (!rRef2.IsTabDeleted()) { diff --git a/sc/source/core/data/documen4.cxx b/sc/source/core/data/documen4.cxx index ba3c19e27255..14493e9887fd 100644 --- a/sc/source/core/data/documen4.cxx +++ b/sc/source/core/data/documen4.cxx @@ -320,7 +320,7 @@ void ScDocument::InsertMatrixFormula(SCCOL nCol1, SCROW nRow1, if (nTab != nTab1) { aRefData.SetRelTab(nTab - aBasePos.Tab()); - t->GetSingleRef() = aRefData; + *t->GetSingleRef() = aRefData; } for (SCCOL nCol = nCol1; nCol <= nCol2; ++nCol) @@ -335,7 +335,7 @@ void ScDocument::InsertMatrixFormula(SCCOL nCol1, SCROW nRow1, aPos = ScAddress(nCol, nRow, nTab); // Reference in each cell must point to the origin cell relative to the current cell. aRefData.SetAddress(aBasePos, aPos); - t->GetSingleRef() = aRefData; + *t->GetSingleRef() = aRefData; boost::scoped_ptr<ScTokenArray> pTokArr(aArr.Clone()); pCell = new ScFormulaCell(this, aPos, *pTokArr, eGram, MM_REFERENCE); pTab->SetFormulaCell(nCol, nRow, pCell); @@ -447,7 +447,7 @@ bool setCacheTableReferenced(ScToken& rToken, ScExternalRefManager& rRefMgr, con rToken.GetIndex(), rToken.GetString().getString(), 1); case svExternalDoubleRef: { - const ScComplexRefData& rRef = rToken.GetDoubleRef(); + const ScComplexRefData& rRef = *rToken.GetDoubleRef(); ScRange aAbs = rRef.toAbs(rPos); size_t nSheets = aAbs.aEnd.Tab() - aAbs.aStart.Tab() + 1; return rRefMgr.setCacheTableReferenced( diff --git a/sc/source/core/data/documentimport.cxx b/sc/source/core/data/documentimport.cxx index 625b92f7aa62..a336e71f711e 100644 --- a/sc/source/core/data/documentimport.cxx +++ b/sc/source/core/data/documentimport.cxx @@ -331,7 +331,7 @@ void ScDocumentImport::setMatrixCells( aPos.SetRow(nRow); // Reference in each cell must point to the origin cell relative to the current cell. aRefData.SetAddress(rBasePos, aPos); - t->GetSingleRef() = aRefData; + *t->GetSingleRef() = aRefData; boost::scoped_ptr<ScTokenArray> pTokArr(aArr.Clone()); pCell = new ScFormulaCell(&mpImpl->mrDoc, aPos, *pTokArr, eGram, MM_REFERENCE); pBlockPos->miCellPos = @@ -351,7 +351,7 @@ void ScDocumentImport::setMatrixCells( { aPos.SetRow(nRow); aRefData.SetAddress(rBasePos, aPos); - t->GetSingleRef() = aRefData; + *t->GetSingleRef() = aRefData; boost::scoped_ptr<ScTokenArray> pTokArr(aArr.Clone()); pCell = new ScFormulaCell(&mpImpl->mrDoc, aPos, *pTokArr, eGram, MM_REFERENCE); pBlockPos->miCellPos = diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx index c902788603ba..f1fea0e5e194 100644 --- a/sc/source/core/data/formulacell.cxx +++ b/sc/source/core/data/formulacell.cxx @@ -866,7 +866,7 @@ void ScFormulaCell::GetFormula( OUStringBuffer& rBuffer, * GetEnglishFormula() omitted that test. * Can we live without in all cases? */ ScFormulaCell* pCell = NULL; - ScSingleRefData& rRef = p->GetSingleRef(); + ScSingleRefData& rRef = *p->GetSingleRef(); ScAddress aAbs = rRef.toAbs(aPos); if (ValidAddress(aAbs)) pCell = pDocument->GetFormulaCell(aAbs); @@ -930,7 +930,7 @@ OUString ScFormulaCell::GetFormula( sc::CompileFormulaContext& rCxt ) const * GetEnglishFormula() omitted that test. * Can we live without in all cases? */ ScFormulaCell* pCell = NULL; - ScSingleRefData& rRef = p->GetSingleRef(); + ScSingleRefData& rRef = *p->GetSingleRef(); ScAddress aAbs = rRef.toAbs(aPos); if (ValidAddress(aAbs)) pCell = pDocument->GetFormulaCell(aAbs); @@ -2337,7 +2337,7 @@ bool ScFormulaCell::GetMatrixOrigin( ScAddress& rPos ) const ScToken* t = static_cast<ScToken*>(pCode->GetNextReferenceRPN()); if( t ) { - ScSingleRefData& rRef = t->GetSingleRef(); + ScSingleRefData& rRef = *t->GetSingleRef(); ScAddress aAbs = rRef.toAbs(aPos); if (ValidAddress(aAbs)) { @@ -2614,9 +2614,9 @@ bool ScFormulaCell::HasRelNameReference() const ScToken* t; while ( ( t = static_cast<ScToken*>(pCode->GetNextReferenceRPN()) ) != NULL ) { - if ( t->GetSingleRef().IsRelName() || + if ( t->GetSingleRef()->IsRelName() || (t->GetType() == formula::svDoubleRef && - t->GetDoubleRef().Ref2.IsRelName()) ) + t->GetDoubleRef()->Ref2.IsRelName()) ) return true; } return false; @@ -2664,7 +2664,7 @@ bool checkCompileColRowName( rCode.Reset(); while ((t = static_cast<ScToken*>(rCode.GetNextColRowName())) != NULL) { - ScSingleRefData& rRef = t->GetSingleRef(); + ScSingleRefData& rRef = *t->GetSingleRef(); if (rCxt.mnRowDelta > 0 && rRef.IsColRel()) { // ColName ScAddress aAdr = rRef.toAbs(aPos); @@ -2709,7 +2709,7 @@ bool checkCompileColRowName( const ScToken* t = static_cast<const ScToken*>(rCode.GetNextColRowName()); for (; t; t = static_cast<const ScToken*>(rCode.GetNextColRowName())) { - const ScSingleRefData& rRef = t->GetSingleRef(); + const ScSingleRefData& rRef = *t->GetSingleRef(); ScAddress aAbs = rRef.toAbs(aPos); if (ValidAddress(aAbs)) { @@ -3195,12 +3195,12 @@ void ScFormulaCell::UpdateInsertTabAbs(SCTAB nTable) ScToken* p = static_cast<ScToken*>(pCode->GetNextReferenceRPN()); while (p) { - ScSingleRefData& rRef1 = p->GetSingleRef(); + ScSingleRefData& rRef1 = *p->GetSingleRef(); if (!rRef1.IsTabRel() && nTable <= rRef1.Tab()) rRef1.IncTab(1); if (p->GetType() == formula::svDoubleRef) { - ScSingleRefData& rRef2 = p->GetDoubleRef().Ref2; + ScSingleRefData& rRef2 = p->GetDoubleRef()->Ref2; if (!rRef2.IsTabRel() && nTable <= rRef2.Tab()) rRef2.IncTab(1); } @@ -3222,7 +3222,7 @@ bool ScFormulaCell::TestTabRefAbs(SCTAB nTable) ScToken* p = static_cast<ScToken*>(pCode->GetNextReferenceRPN()); while (p) { - ScSingleRefData& rRef1 = p->GetSingleRef(); + ScSingleRefData& rRef1 = *p->GetSingleRef(); if (!rRef1.IsTabRel()) { if (nTable != rRef1.Tab()) @@ -3232,7 +3232,7 @@ bool ScFormulaCell::TestTabRefAbs(SCTAB nTable) } if (p->GetType() == formula::svDoubleRef) { - ScSingleRefData& rRef2 = p->GetDoubleRef().Ref2; + ScSingleRefData& rRef2 = p->GetDoubleRef()->Ref2; if (!rRef2.IsTabRel()) { if(nTable != rRef2.Tab()) @@ -3263,11 +3263,11 @@ void ScFormulaCell::TransposeReference() ScToken* t; while ( ( t = static_cast<ScToken*>(pCode->GetNextReference()) ) != NULL ) { - ScSingleRefData& rRef1 = t->GetSingleRef(); + ScSingleRefData& rRef1 = *t->GetSingleRef(); if ( rRef1.IsColRel() && rRef1.IsRowRel() ) { bool bDouble = (t->GetType() == formula::svDoubleRef); - ScSingleRefData& rRef2 = (bDouble ? t->GetDoubleRef().Ref2 : rRef1); + ScSingleRefData& rRef2 = (bDouble ? t->GetDoubleRef()->Ref2 : rRef1); if ( !bDouble || (rRef2.IsColRel() && rRef2.IsRowRel()) ) { SCCOLROW nTemp; @@ -3576,8 +3576,8 @@ ScFormulaCell::CompareState ScFormulaCell::CompareByTokenArray( ScFormulaCell& r case formula::svSingleRef: { // Single cell reference. - const ScSingleRefData& rRef = pThisTok->GetSingleRef(); - if (rRef != pOtherTok->GetSingleRef()) + const ScSingleRefData& rRef = *pThisTok->GetSingleRef(); + if (rRef != *pOtherTok->GetSingleRef()) return NotEqual; if (rRef.IsRowRel()) @@ -3587,12 +3587,12 @@ ScFormulaCell::CompareState ScFormulaCell::CompareByTokenArray( ScFormulaCell& r case formula::svDoubleRef: { // Range reference. - const ScSingleRefData& rRef1 = pThisTok->GetSingleRef(); - const ScSingleRefData& rRef2 = pThisTok->GetSingleRef2(); - if (rRef1 != pOtherTok->GetSingleRef()) + const ScSingleRefData& rRef1 = *pThisTok->GetSingleRef(); + const ScSingleRefData& rRef2 = *pThisTok->GetSingleRef2(); + if (rRef1 != *pOtherTok->GetSingleRef()) return NotEqual; - if (rRef2 != pOtherTok->GetSingleRef2()) + if (rRef2 != *pOtherTok->GetSingleRef2()) return NotEqual; if (rRef1.IsRowRel()) @@ -3713,7 +3713,7 @@ bool ScFormulaCell::InterpretInvariantFormulaGroup() { case svSingleRef: { - ScSingleRefData aRef = pToken->GetSingleRef(); + ScSingleRefData aRef = *pToken->GetSingleRef(); ScAddress aRefPos = aRef.toAbs(aPos); formula::FormulaTokenRef pNewToken = pDocument->ResolveStaticReference(aRefPos); if (!pNewToken) @@ -3724,7 +3724,7 @@ bool ScFormulaCell::InterpretInvariantFormulaGroup() break; case svDoubleRef: { - ScComplexRefData aRef = pToken->GetDoubleRef(); + ScComplexRefData aRef = *pToken->GetDoubleRef(); ScRange aRefRange = aRef.toAbs(aPos); formula::FormulaTokenRef pNewToken = pDocument->ResolveStaticReference(aRefRange); if (!pNewToken) @@ -3778,8 +3778,8 @@ namespace { void startListeningArea( ScFormulaCell* pCell, ScDocument& rDoc, const ScAddress& rPos, const ScToken& rToken) { - const ScSingleRefData& rRef1 = rToken.GetSingleRef(); - const ScSingleRefData& rRef2 = rToken.GetSingleRef2(); + const ScSingleRefData& rRef1 = *rToken.GetSingleRef(); + const ScSingleRefData& rRef2 = *rToken.GetSingleRef2(); ScAddress aCell1 = rRef1.toAbs(rPos); ScAddress aCell2 = rRef2.toAbs(rPos); if (aCell1.IsValid() && aCell2.IsValid()) @@ -3822,7 +3822,7 @@ void ScFormulaCell::StartListeningTo( ScDocument* pDoc ) { case svSingleRef: { - ScAddress aCell = t->GetSingleRef().toAbs(aPos); + ScAddress aCell = t->GetSingleRef()->toAbs(aPos); if (aCell.IsValid()) pDoc->StartListeningCell(aCell, this); } @@ -3860,7 +3860,7 @@ void ScFormulaCell::StartListeningTo( sc::StartListeningContext& rCxt ) { case svSingleRef: { - ScAddress aCell = t->GetSingleRef().toAbs(aPos); + ScAddress aCell = t->GetSingleRef()->toAbs(aPos); if (aCell.IsValid()) rDoc.StartListeningCell(rCxt, aCell, *this); } @@ -3880,8 +3880,8 @@ namespace { void endListeningArea( ScFormulaCell* pCell, ScDocument& rDoc, const ScAddress& rPos, const ScToken& rToken) { - const ScSingleRefData& rRef1 = rToken.GetSingleRef(); - const ScSingleRefData& rRef2 = rToken.GetSingleRef2(); + const ScSingleRefData& rRef1 = *rToken.GetSingleRef(); + const ScSingleRefData& rRef2 = *rToken.GetSingleRef2(); ScAddress aCell1 = rRef1.toAbs(rPos); ScAddress aCell2 = rRef2.toAbs(rPos); if (aCell1.IsValid() && aCell2.IsValid()) @@ -3930,7 +3930,7 @@ void ScFormulaCell::EndListeningTo( ScDocument* pDoc, ScTokenArray* pArr, { case svSingleRef: { - ScAddress aCell = t->GetSingleRef().toAbs(aCellPos); + ScAddress aCell = t->GetSingleRef()->toAbs(aCellPos); if (aCell.IsValid()) pDoc->EndListeningCell(aCell, this); } @@ -3970,7 +3970,7 @@ void ScFormulaCell::EndListeningTo( sc::EndListeningContext& rCxt ) { case svSingleRef: { - ScAddress aCell = t->GetSingleRef().toAbs(aCellPos); + ScAddress aCell = t->GetSingleRef()->toAbs(aCellPos); if (aCell.IsValid()) rDoc.EndListeningCell(rCxt, aCell, *this); } diff --git a/sc/source/core/data/formulaiter.cxx b/sc/source/core/data/formulaiter.cxx index e101a79fd38c..e5454931872a 100644 --- a/sc/source/core/data/formulaiter.cxx +++ b/sc/source/core/data/formulaiter.cxx @@ -34,13 +34,13 @@ ScDetectiveRefIter::ScDetectiveRefIter( ScFormulaCell* pCell ) static bool lcl_ScDetectiveRefIter_SkipRef( ScToken* p, const ScAddress& rPos ) { - ScSingleRefData& rRef1 = p->GetSingleRef(); + ScSingleRefData& rRef1 = *p->GetSingleRef(); ScAddress aAbs1 = rRef1.toAbs(rPos); if (!ValidAddress(aAbs1)) return true; if ( p->GetType() == svDoubleRef || p->GetType() == svExternalDoubleRef ) { - ScSingleRefData& rRef2 = p->GetDoubleRef().Ref2; + ScSingleRefData& rRef2 = p->GetDoubleRef()->Ref2; ScAddress aAbs2 = rRef2.toAbs(rPos); if (!ValidAddress(aAbs2)) return true; diff --git a/sc/source/core/data/grouptokenconverter.cxx b/sc/source/core/data/grouptokenconverter.cxx index 537bd2154efa..06eb18a33453 100644 --- a/sc/source/core/data/grouptokenconverter.cxx +++ b/sc/source/core/data/grouptokenconverter.cxx @@ -102,7 +102,7 @@ bool ScGroupTokenConverter::convert(ScTokenArray& rCode) { case svSingleRef: { - ScSingleRefData aRef = pToken->GetSingleRef(); + ScSingleRefData aRef = *pToken->GetSingleRef(); ScAddress aRefPos = aRef.toAbs(mrPos); if (aRef.IsRowRel()) { @@ -141,7 +141,7 @@ bool ScGroupTokenConverter::convert(ScTokenArray& rCode) break; case svDoubleRef: { - ScComplexRefData aRef = pToken->GetDoubleRef(); + ScComplexRefData aRef = *pToken->GetDoubleRef(); ScRange aAbs = aRef.toAbs(mrPos); // Check for self reference. diff --git a/sc/source/core/tool/chgtrack.cxx b/sc/source/core/tool/chgtrack.cxx index f847d670bd1f..6b62040b6241 100644 --- a/sc/source/core/tool/chgtrack.cxx +++ b/sc/source/core/tool/chgtrack.cxx @@ -1883,7 +1883,7 @@ void ScChangeActionContent::PutValueToDoc( static void lcl_InvalidateReference( ScToken& rTok, const ScBigAddress& rPos ) { - ScSingleRefData& rRef1 = rTok.GetSingleRef(); + ScSingleRefData& rRef1 = *rTok.GetSingleRef(); if ( rPos.Col() < 0 || MAXCOL < rPos.Col() ) { rRef1.SetColDeleted( true ); @@ -1898,7 +1898,7 @@ static void lcl_InvalidateReference( ScToken& rTok, const ScBigAddress& rPos ) } if ( rTok.GetType() == formula::svDoubleRef ) { - ScSingleRefData& rRef2 = rTok.GetDoubleRef().Ref2; + ScSingleRefData& rRef2 = rTok.GetDoubleRef()->Ref2; if ( rPos.Col() < 0 || MAXCOL < rPos.Col() ) { rRef2.SetColDeleted( true ); diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx index 33146a7ab12f..e27ed3ef12bb 100644 --- a/sc/source/core/tool/compiler.cxx +++ b/sc/source/core/tool/compiler.cxx @@ -4051,12 +4051,12 @@ void ScCompiler::SetRelNameReference() for( ScToken* t = static_cast<ScToken*>(pArr->GetNextReference()); t; t = static_cast<ScToken*>(pArr->GetNextReference()) ) { - ScSingleRefData& rRef1 = t->GetSingleRef(); + ScSingleRefData& rRef1 = *t->GetSingleRef(); if ( rRef1.IsColRel() || rRef1.IsRowRel() || rRef1.IsTabRel() ) rRef1.SetRelName( true ); if ( t->GetType() == svDoubleRef ) { - ScSingleRefData& rRef2 = t->GetDoubleRef().Ref2; + ScSingleRefData& rRef2 = t->GetDoubleRef()->Ref2; if ( rRef2.IsColRel() || rRef2.IsRowRel() || rRef2.IsTabRel() ) rRef2.SetRelName( true ); } @@ -4072,9 +4072,9 @@ void ScCompiler::MoveRelWrap( SCCOL nMaxCol, SCROW nMaxRow ) t = static_cast<ScToken*>(pArr->GetNextReference()) ) { if ( t->GetType() == svSingleRef || t->GetType() == svExternalSingleRef ) - ScRefUpdate::MoveRelWrap( pDoc, aPos, nMaxCol, nMaxRow, SingleDoubleRefModifier( t->GetSingleRef() ).Ref() ); + ScRefUpdate::MoveRelWrap( pDoc, aPos, nMaxCol, nMaxRow, SingleDoubleRefModifier( *t->GetSingleRef() ).Ref() ); else - ScRefUpdate::MoveRelWrap( pDoc, aPos, nMaxCol, nMaxRow, t->GetDoubleRef() ); + ScRefUpdate::MoveRelWrap( pDoc, aPos, nMaxCol, nMaxRow, *t->GetDoubleRef() ); } } @@ -4088,9 +4088,9 @@ void ScCompiler::MoveRelWrap( ScTokenArray& rArr, ScDocument* pDoc, const ScAddr t = static_cast<ScToken*>(rArr.GetNextReference()) ) { if ( t->GetType() == svSingleRef || t->GetType() == svExternalSingleRef ) - ScRefUpdate::MoveRelWrap( pDoc, rPos, nMaxCol, nMaxRow, SingleDoubleRefModifier( t->GetSingleRef() ).Ref() ); + ScRefUpdate::MoveRelWrap( pDoc, rPos, nMaxCol, nMaxRow, SingleDoubleRefModifier( *t->GetSingleRef() ).Ref() ); else - ScRefUpdate::MoveRelWrap( pDoc, rPos, nMaxCol, nMaxRow, t->GetDoubleRef() ); + ScRefUpdate::MoveRelWrap( pDoc, rPos, nMaxCol, nMaxRow, *t->GetDoubleRef() ); } } @@ -4134,7 +4134,7 @@ void ScCompiler::CreateStringFromExternal(OUStringBuffer& rBuffer, FormulaToken* case svExternalSingleRef: pConv->makeExternalRefStr( rBuffer, GetPos(), nFileId, *pFileName, t->GetString().getString(), - static_cast<ScToken*>(t)->GetSingleRef()); + *static_cast<ScToken*>(t)->GetSingleRef()); break; case svExternalDoubleRef: { @@ -4145,7 +4145,7 @@ void ScCompiler::CreateStringFromExternal(OUStringBuffer& rBuffer, FormulaToken* pConv->makeExternalRefStr( rBuffer, GetPos(), nFileId, *pFileName, aTabNames, t->GetString().getString(), - static_cast<ScToken*>(t)->GetDoubleRef()); + *static_cast<ScToken*>(t)->GetDoubleRef()); } break; default: @@ -4204,7 +4204,7 @@ void ScCompiler::CreateStringFromSingleRef(OUStringBuffer& rBuffer,FormulaToken* { OUString aErrRef = GetCurrentOpCodeMap()->getSymbol(ocErrRef); const OpCode eOp = _pTokenP->GetOpCode(); - const ScSingleRefData& rRef = static_cast<const ScToken*>(_pTokenP)->GetSingleRef(); + const ScSingleRefData& rRef = *static_cast<const ScToken*>(_pTokenP)->GetSingleRef(); ScComplexRefData aRef; aRef.Ref1 = aRef.Ref2 = rRef; if ( eOp == ocColRowName ) @@ -4232,7 +4232,7 @@ void ScCompiler::CreateStringFromDoubleRef(OUStringBuffer& rBuffer,FormulaToken* { OUString aErrRef = GetCurrentOpCodeMap()->getSymbol(ocErrRef); pConv->makeRefStr(rBuffer, meGrammar, aPos, aErrRef, GetSetupTabNames(), - static_cast<ScToken*>(_pTokenP)->GetDoubleRef(), false); + *static_cast<ScToken*>(_pTokenP)->GetDoubleRef(), false); } void ScCompiler::CreateStringFromIndex(OUStringBuffer& rBuffer,FormulaToken* _pTokenP) const @@ -4325,7 +4325,7 @@ void ScCompiler::fillAddInToken(::std::vector< ::com::sun::star::sheet::FormulaO bool ScCompiler::HandleSingleRef() { - ScSingleRefData& rRef = static_cast<ScToken*>(mpToken.get())->GetSingleRef(); + ScSingleRefData& rRef = *static_cast<ScToken*>(mpToken.get())->GetSingleRef(); ScAddress aAbs = rRef.toAbs(aPos); if (!ValidAddress(aAbs)) { diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index d5dcb8e5ef68..53f922d2ae31 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -7576,14 +7576,14 @@ void ScInterpreter::ScAreas() case svSingleRef: { FormulaTokenRef xT = PopToken(); - ValidateRef( static_cast<ScToken*>(xT.get())->GetSingleRef()); + ValidateRef( *static_cast<ScToken*>(xT.get())->GetSingleRef()); ++nCount; } break; case svDoubleRef: { FormulaTokenRef xT = PopToken(); - ValidateRef( static_cast<ScToken*>(xT.get())->GetDoubleRef()); + ValidateRef( *static_cast<ScToken*>(xT.get())->GetDoubleRef()); ++nCount; } break; diff --git a/sc/source/core/tool/interpr2.cxx b/sc/source/core/tool/interpr2.cxx index 183e4ae7f7e3..6674bb870933 100644 --- a/sc/source/core/tool/interpr2.cxx +++ b/sc/source/core/tool/interpr2.cxx @@ -1952,13 +1952,13 @@ void ScInterpreter::ScIntersect() if (sv[i] == svSingleRef) { ScComplexRefData aRef; - aRef.Ref1 = aRef.Ref2 = xt[i]->GetSingleRef(); + aRef.Ref1 = aRef.Ref2 = *xt[i]->GetSingleRef(); xt[i] = new ScRefListToken; xt[i]->GetRefList()->push_back( aRef); } else if (sv[i] == svDoubleRef) { - ScComplexRefData aRef = xt[i]->GetDoubleRef(); + ScComplexRefData aRef = *xt[i]->GetDoubleRef(); xt[i] = new ScRefListToken; xt[i]->GetRefList()->push_back( aRef); } @@ -2024,14 +2024,14 @@ void ScInterpreter::ScIntersect() case svDoubleRef: { { - const ScAddress& r = pt[i]->GetSingleRef().toAbs(aPos); + const ScAddress& r = pt[i]->GetSingleRef()->toAbs(aPos); nC1[i] = r.Col(); nR1[i] = r.Row(); nT1[i] = r.Tab(); } if (sv[i] == svDoubleRef) { - const ScAddress& r = pt[i]->GetSingleRef2().toAbs(aPos); + const ScAddress& r = pt[i]->GetSingleRef2()->toAbs(aPos); nC2[i] = r.Col(); nR2[i] = r.Row(); nT2[i] = r.Tab(); @@ -2129,12 +2129,12 @@ void ScInterpreter::ScUnionFunc() case svSingleRef: { ScComplexRefData aRef; - aRef.Ref1 = aRef.Ref2 = pt[i]->GetSingleRef(); + aRef.Ref1 = aRef.Ref2 = *pt[i]->GetSingleRef(); pRes->push_back( aRef); } break; case svDoubleRef: - pRes->push_back( pt[i]->GetDoubleRef()); + pRes->push_back( *pt[i]->GetDoubleRef()); break; case svRefList: { diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx index 2b1b92ad6f35..4bb62c454a84 100644 --- a/sc/source/core/tool/interpr4.cxx +++ b/sc/source/core/tool/interpr4.cxx @@ -1171,7 +1171,7 @@ void ScInterpreter::PopSingleRef(SCCOL& rCol, SCROW &rRow, SCTAB& rTab) nGlobalError = p->GetError(); break; case svSingleRef: - SingleRefToVars( static_cast<ScToken*>(p)->GetSingleRef(), rCol, rRow, rTab); + SingleRefToVars( *static_cast<ScToken*>(p)->GetSingleRef(), rCol, rRow, rTab); if ( !pDok->aTableOpList.empty() ) ReplaceCell( rCol, rRow, rTab ); break; @@ -1199,7 +1199,7 @@ void ScInterpreter::PopSingleRef( ScAddress& rAdr ) SCCOL nCol; SCROW nRow; SCTAB nTab; - SingleRefToVars( static_cast<ScToken*>(p)->GetSingleRef(), nCol, nRow, nTab); + SingleRefToVars( *static_cast<ScToken*>(p)->GetSingleRef(), nCol, nRow, nTab); rAdr.Set( nCol, nRow, nTab ); if ( !pDok->aTableOpList.empty() ) ReplaceCell( rAdr ); @@ -1218,7 +1218,7 @@ void ScInterpreter::DoubleRefToVars( const ScToken* p, SCCOL& rCol2, SCROW &rRow2, SCTAB& rTab2, bool bDontCheckForTableOp ) { - const ScComplexRefData& rCRef = p->GetDoubleRef(); + const ScComplexRefData& rCRef = *p->GetDoubleRef(); SingleRefToVars( rCRef.Ref1, rCol1, rRow1, rTab1); SingleRefToVars( rCRef.Ref2, rCol2, rRow2, rTab2); if ( !pDok->aTableOpList.empty() && !bDontCheckForTableOp ) @@ -1325,7 +1325,7 @@ void ScInterpreter::PopDoubleRef( ScRange & rRange, short & rParam, size_t & rRe break; case svDoubleRef: --sp; - DoubleRefToRange( p->GetDoubleRef(), rRange); + DoubleRefToRange( *p->GetDoubleRef(), rRange); break; case svRefList: { @@ -1369,7 +1369,7 @@ void ScInterpreter::PopDoubleRef( ScRange& rRange, bool bDontCheckForTableOp ) nGlobalError = p->GetError(); break; case svDoubleRef: - DoubleRefToRange( static_cast<ScToken*>(p)->GetDoubleRef(), rRange, bDontCheckForTableOp); + DoubleRefToRange( *static_cast<ScToken*>(p)->GetDoubleRef(), rRange, bDontCheckForTableOp); break; default: SetError( errIllegalParameter); @@ -1405,7 +1405,7 @@ void ScInterpreter::PopExternalSingleRef(sal_uInt16& rFileId, OUString& rTabName rFileId = p->GetIndex(); rTabName = p->GetString().getString(); - rRef = static_cast<ScToken*>(p)->GetSingleRef(); + rRef = *static_cast<ScToken*>(p)->GetSingleRef(); } void ScInterpreter::PopExternalSingleRef(ScExternalRefCache::TokenRef& rToken, ScExternalRefCache::CellFormat* pFmt) @@ -1481,7 +1481,7 @@ void ScInterpreter::PopExternalDoubleRef(sal_uInt16& rFileId, OUString& rTabName rFileId = p->GetIndex(); rTabName = p->GetString().getString(); - rRef = static_cast<ScToken*>(p)->GetDoubleRef(); + rRef = *static_cast<ScToken*>(p)->GetDoubleRef(); } void ScInterpreter::PopExternalDoubleRef(ScExternalRefCache::TokenArrayRef& rArray) @@ -1690,7 +1690,7 @@ bool ScInterpreter::ConvertMatrixParameters() { sal_uInt16 nFileId = p->GetIndex(); OUString aTabName = p->GetString().getString(); - const ScComplexRefData& rRef = static_cast<ScToken*>(p)->GetDoubleRef(); + const ScComplexRefData& rRef = *static_cast<ScToken*>(p)->GetDoubleRef(); ScExternalRefCache::TokenArrayRef pArray; GetExternalDoubleRef(nFileId, aTabName, rRef, pArray); if (nGlobalError) @@ -1812,7 +1812,7 @@ sc::RangeMatrix ScInterpreter::PopRangeMatrix() aRet.mpMat->SetErrorInterpreter(this); if (p2->GetByte() == MATRIX_TOKEN_HAS_RANGE) { - const ScComplexRefData& rRef = p2->GetDoubleRef(); + const ScComplexRefData& rRef = *p2->GetDoubleRef(); if (!rRef.Ref1.IsColRel() && !rRef.Ref1.IsRowRel() && !rRef.Ref2.IsColRel() && !rRef.Ref2.IsRowRel()) { aRet.mnCol1 = rRef.Ref1.Col(); @@ -3579,7 +3579,7 @@ void ScInterpreter::ScDBArea() void ScInterpreter::ScColRowNameAuto() { - ScComplexRefData aRefData( static_cast<const ScToken*>(pCur)->GetDoubleRef() ); + ScComplexRefData aRefData( *static_cast<const ScToken*>(pCur)->GetDoubleRef() ); ScRange aAbs = aRefData.toAbs(aPos); if (!ValidRange(aAbs)) { diff --git a/sc/source/core/tool/rangenam.cxx b/sc/source/core/tool/rangenam.cxx index 3fb839edc710..e770110ec3c5 100644 --- a/sc/source/core/tool/rangenam.cxx +++ b/sc/source/core/tool/rangenam.cxx @@ -221,7 +221,7 @@ void ScRangeData::GuessPosition() pCode->Reset(); while ( ( t = static_cast<ScToken*>(pCode->GetNextReference()) ) != NULL ) { - ScSingleRefData& rRef1 = t->GetSingleRef(); + ScSingleRefData& rRef1 = *t->GetSingleRef(); if ( rRef1.IsColRel() && rRef1.Col() < nMinCol ) nMinCol = rRef1.Col(); if ( rRef1.IsRowRel() && rRef1.Row() < nMinRow ) @@ -231,7 +231,7 @@ void ScRangeData::GuessPosition() if ( t->GetType() == svDoubleRef ) { - ScSingleRefData& rRef2 = t->GetDoubleRef().Ref2; + ScSingleRefData& rRef2 = t->GetDoubleRef()->Ref2; if ( rRef2.IsColRel() && rRef2.Col() < nMinCol ) nMinCol = rRef2.Col(); if ( rRef2.IsRowRel() && rRef2.Row() < nMinRow ) @@ -543,7 +543,7 @@ void ScRangeData::ValidateTabRefs() pCode->Reset(); while ( ( t = static_cast<ScToken*>(pCode->GetNextReference()) ) != NULL ) { - ScSingleRefData& rRef1 = t->GetSingleRef(); + ScSingleRefData& rRef1 = *t->GetSingleRef(); ScAddress aAbs = rRef1.toAbs(aPos); if ( rRef1.IsTabRel() && !rRef1.IsTabDeleted() ) { @@ -554,7 +554,7 @@ void ScRangeData::ValidateTabRefs() } if ( t->GetType() == svDoubleRef ) { - ScSingleRefData& rRef2 = t->GetDoubleRef().Ref2; + ScSingleRefData& rRef2 = t->GetDoubleRef()->Ref2; aAbs = rRef2.toAbs(aPos); if ( rRef2.IsTabRel() && !rRef2.IsTabDeleted() ) { @@ -583,7 +583,7 @@ void ScRangeData::ValidateTabRefs() { case svSingleRef: { - ScSingleRefData& rRef = t->GetSingleRef(); + ScSingleRefData& rRef = *t->GetSingleRef(); if (!rRef.IsTabDeleted()) { ScAddress aAbs = rRef.toAbs(aOldPos); @@ -593,7 +593,7 @@ void ScRangeData::ValidateTabRefs() break; case svDoubleRef: { - ScComplexRefData& rRef = t->GetDoubleRef(); + ScComplexRefData& rRef = *t->GetDoubleRef(); if (!rRef.Ref1.IsTabDeleted()) { ScAddress aAbs = rRef.Ref1.toAbs(aOldPos); diff --git a/sc/source/core/tool/reftokenhelper.cxx b/sc/source/core/tool/reftokenhelper.cxx index 696f364a4753..a26ab0de5762 100644 --- a/sc/source/core/tool/reftokenhelper.cxx +++ b/sc/source/core/tool/reftokenhelper.cxx @@ -81,7 +81,7 @@ void ScRefTokenHelper::compileRangeRepresentation( case svSingleRef: { const ScToken* pT = static_cast<const ScToken*>(p); - const ScSingleRefData& rRef = pT->GetSingleRef(); + const ScSingleRefData& rRef = *pT->GetSingleRef(); if (!rRef.Valid()) bFailure = true; else if (bOnly3DRef && !rRef.IsFlag3D()) @@ -91,7 +91,7 @@ void ScRefTokenHelper::compileRangeRepresentation( case svDoubleRef: { const ScToken* pT = static_cast<const ScToken*>(p); - const ScComplexRefData& rRef = pT->GetDoubleRef(); + const ScComplexRefData& rRef = *pT->GetDoubleRef(); if (!rRef.Valid()) bFailure = true; else if (bOnly3DRef && !rRef.Ref1.IsFlag3D()) @@ -101,14 +101,14 @@ void ScRefTokenHelper::compileRangeRepresentation( case svExternalSingleRef: { const ScToken* pT = static_cast<const ScToken*>(p); - if (!pT->GetSingleRef().ValidExternal()) + if (!pT->GetSingleRef()->ValidExternal()) bFailure = true; } break; case svExternalDoubleRef: { const ScToken* pT = static_cast<const ScToken*>(p); - if (!pT->GetDoubleRef().ValidExternal()) + if (!pT->GetDoubleRef()->ValidExternal()) bFailure = true; } break; @@ -142,7 +142,7 @@ bool ScRefTokenHelper::getRangeFromToken( (eType == svSingleRef && bExternal)) return false; - const ScSingleRefData& rRefData = pToken->GetSingleRef(); + const ScSingleRefData& rRefData = *pToken->GetSingleRef(); rRange.aStart = rRefData.toAbs(rPos); rRange.aEnd = rRange.aStart; return true; @@ -154,7 +154,7 @@ bool ScRefTokenHelper::getRangeFromToken( (eType == svDoubleRef && bExternal)) return false; - const ScComplexRefData& rRefData = pToken->GetDoubleRef(); + const ScComplexRefData& rRefData = *pToken->GetDoubleRef(); rRange = rRefData.toAbs(rPos); return true; } @@ -446,7 +446,7 @@ bool ScRefTokenHelper::getDoubleRefDataFromToken(ScComplexRefData& rData, const case svSingleRef: case svExternalSingleRef: { - const ScSingleRefData& r = pToken->GetSingleRef(); + const ScSingleRefData& r = *pToken->GetSingleRef(); rData.Ref1 = r; rData.Ref1.SetFlag3D(true); rData.Ref2 = r; @@ -455,7 +455,7 @@ bool ScRefTokenHelper::getDoubleRefDataFromToken(ScComplexRefData& rData, const break; case svDoubleRef: case svExternalDoubleRef: - rData = pToken->GetDoubleRef(); + rData = *pToken->GetDoubleRef(); break; default: // Not a reference token. Bail out. diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx index 7673b09249cd..c8d47e43945b 100644 --- a/sc/source/core/tool/token.cxx +++ b/sc/source/core/tool/token.cxx @@ -451,21 +451,6 @@ void ScRawToken::Delete() // --- class ScToken -------------------------------------------------------- -static ScSingleRefData lcl_ScToken_InitSingleRef() -{ - ScSingleRefData aRef; - aRef.InitAddress( ScAddress() ); - return aRef; -} - -static ScComplexRefData lcl_ScToken_InitDoubleRef() -{ - ScComplexRefData aRef; - aRef.Ref1 = lcl_ScToken_InitSingleRef(); - aRef.Ref2 = aRef.Ref1; - return aRef; -} - ScToken::~ScToken() { } @@ -483,20 +468,20 @@ bool ScToken::checkTextEqual( const FormulaToken& _rToken ) const ScComplexRefData aTemp1; if ( eType == svSingleRef ) { - aTemp1.Ref1 = GetSingleRef(); + aTemp1.Ref1 = *GetSingleRef(); aTemp1.Ref2 = aTemp1.Ref1; } else - aTemp1 = GetDoubleRef(); + aTemp1 = *GetDoubleRef(); ScComplexRefData aTemp2; if ( rToken.eType == svSingleRef ) { - aTemp2.Ref1 = rToken.GetSingleRef(); + aTemp2.Ref1 = *rToken.GetSingleRef(); aTemp2.Ref2 = aTemp2.Ref1; } else - aTemp2 = rToken.GetDoubleRef(); + aTemp2 = *rToken.GetDoubleRef(); ScAddress aPos; ScRange aRange1 = aTemp1.toAbs(aPos), aRange2 = aTemp2.toAbs(aPos); @@ -512,11 +497,11 @@ void DumpToken(ScToken const & rToken) switch (rToken.GetType()) { case svSingleRef: cout << "-- ScSingleRefToken" << endl; - rToken.GetSingleRef().Dump(1); + rToken.GetSingleRef()->Dump(1); break; case svDoubleRef: cout << "-- ScDoubleRefToken" << endl; - rToken.GetDoubleRef().Dump(1); + rToken.GetDoubleRef()->Dump(1); break; default: cout << "-- ScToken (base class)" << endl; @@ -565,12 +550,12 @@ FormulaTokenRef extendRangeReference( FormulaToken & rTok1, FormulaToken & rTok2 * merged here. For Xcl syntax already parse an external range * reference entirely, cumbersome. */ - const ScSingleRefData& rRef2 = p2->GetSingleRef(); + const ScSingleRefData& rRef2 = *p2->GetSingleRef(); if (bExternal && rRef2.IsFlag3D()) return NULL; ScComplexRefData aRef; - aRef.Ref1 = aRef.Ref2 = p1->GetSingleRef(); + aRef.Ref1 = aRef.Ref2 = *p1->GetSingleRef(); aRef.Ref2.SetFlag3D( false); aRef.Extend( rRef2, rPos); if (bExternal) @@ -608,16 +593,16 @@ FormulaTokenRef extendRangeReference( FormulaToken & rTok1, FormulaToken & rTok2 return NULL; // shouldn't happen.. StackVar sv[2] = { sv1, sv2 }; ScToken* pt[2] = { p1, p2 }; - ScComplexRefData& rRef = xRes->GetDoubleRef(); + ScComplexRefData& rRef = *xRes->GetDoubleRef(); for (size_t i=0; i<2; ++i) { switch (sv[i]) { case svSingleRef: - rRef.Extend( pt[i]->GetSingleRef(), rPos); + rRef.Extend( *pt[i]->GetSingleRef(), rPos); break; case svDoubleRef: - rRef.Extend( pt[i]->GetDoubleRef(), rPos); + rRef.Extend( *pt[i]->GetDoubleRef(), rPos); break; case svRefList: { @@ -636,13 +621,13 @@ FormulaTokenRef extendRangeReference( FormulaToken & rTok1, FormulaToken & rTok2 if (rRef.Ref1.IsFlag3D() || rRef.Ref2.IsFlag3D()) return NULL; // no other sheets with external refs else - rRef.Extend( pt[i]->GetSingleRef(), rPos); + rRef.Extend( *pt[i]->GetSingleRef(), rPos); break; case svExternalDoubleRef: if (rRef.Ref1.IsFlag3D() || rRef.Ref2.IsFlag3D()) return NULL; // no other sheets with external refs else - rRef.Extend( pt[i]->GetDoubleRef(), rPos); + rRef.Extend( *pt[i]->GetDoubleRef(), rPos); break; default: ; // nothing, prevent compiler warning @@ -652,46 +637,40 @@ FormulaTokenRef extendRangeReference( FormulaToken & rTok1, FormulaToken & rTok2 return FormulaTokenRef(xRes.get()); } -const ScSingleRefData& ScToken::GetSingleRef() const +const ScSingleRefData* ScToken::GetSingleRef() const { OSL_FAIL( "ScToken::GetSingleRef: virtual dummy called" ); - static ScSingleRefData aDummySingleRef = lcl_ScToken_InitSingleRef(); - return aDummySingleRef; + return nullptr; } -ScSingleRefData& ScToken::GetSingleRef() +ScSingleRefData* ScToken::GetSingleRef() { OSL_FAIL( "ScToken::GetSingleRef: virtual dummy called" ); - static ScSingleRefData aDummySingleRef = lcl_ScToken_InitSingleRef(); - return aDummySingleRef; + return nullptr; } -const ScComplexRefData& ScToken::GetDoubleRef() const +const ScComplexRefData* ScToken::GetDoubleRef() const { OSL_FAIL( "ScToken::GetDoubleRef: virtual dummy called" ); - static ScComplexRefData aDummyDoubleRef = lcl_ScToken_InitDoubleRef(); - return aDummyDoubleRef; + return nullptr; } -ScComplexRefData& ScToken::GetDoubleRef() +ScComplexRefData* ScToken::GetDoubleRef() { OSL_FAIL( "ScToken::GetDoubleRef: virtual dummy called" ); - static ScComplexRefData aDummyDoubleRef = lcl_ScToken_InitDoubleRef(); - return aDummyDoubleRef; + return nullptr; } -const ScSingleRefData& ScToken::GetSingleRef2() const +const ScSingleRefData* ScToken::GetSingleRef2() const { OSL_FAIL( "ScToken::GetSingleRef2: virtual dummy called" ); - static ScSingleRefData aDummySingleRef = lcl_ScToken_InitSingleRef(); - return aDummySingleRef; + return nullptr; } -ScSingleRefData& ScToken::GetSingleRef2() +ScSingleRefData* ScToken::GetSingleRef2() { OSL_FAIL( "ScToken::GetSingleRef2: virtual dummy called" ); - static ScSingleRefData aDummySingleRef = lcl_ScToken_InitSingleRef(); - return aDummySingleRef; + return nullptr; } const ScMatrix* ScToken::GetMatrix() const @@ -725,30 +704,30 @@ ScRefList* ScToken::GetRefList() // real implementations of virtual functions -const ScSingleRefData& ScSingleRefToken::GetSingleRef() const { return aSingleRef; } -ScSingleRefData& ScSingleRefToken::GetSingleRef() { return aSingleRef; } +const ScSingleRefData* ScSingleRefToken::GetSingleRef() const { return &aSingleRef; } +ScSingleRefData* ScSingleRefToken::GetSingleRef() { return &aSingleRef; } bool ScSingleRefToken::TextEqual( const FormulaToken& _rToken ) const { return FormulaToken::operator ==(_rToken) && checkTextEqual(_rToken); } bool ScSingleRefToken::operator==( const FormulaToken& r ) const { - return FormulaToken::operator==( r ) && aSingleRef == static_cast<const ScToken&>(r).GetSingleRef(); + return FormulaToken::operator==( r ) && aSingleRef == *static_cast<const ScToken&>(r).GetSingleRef(); } -const ScSingleRefData& ScDoubleRefToken::GetSingleRef() const { return aDoubleRef.Ref1; } -ScSingleRefData& ScDoubleRefToken::GetSingleRef() { return aDoubleRef.Ref1; } -const ScComplexRefData& ScDoubleRefToken::GetDoubleRef() const { return aDoubleRef; } -ScComplexRefData& ScDoubleRefToken::GetDoubleRef() { return aDoubleRef; } -const ScSingleRefData& ScDoubleRefToken::GetSingleRef2() const { return aDoubleRef.Ref2; } -ScSingleRefData& ScDoubleRefToken::GetSingleRef2() { return aDoubleRef.Ref2; } +const ScSingleRefData* ScDoubleRefToken::GetSingleRef() const { return &aDoubleRef.Ref1; } +ScSingleRefData* ScDoubleRefToken::GetSingleRef() { return &aDoubleRef.Ref1; } +const ScComplexRefData* ScDoubleRefToken::GetDoubleRef() const { return &aDoubleRef; } +ScComplexRefData* ScDoubleRefToken::GetDoubleRef() { return &aDoubleRef; } +const ScSingleRefData* ScDoubleRefToken::GetSingleRef2() const { return &aDoubleRef.Ref2; } +ScSingleRefData* ScDoubleRefToken::GetSingleRef2() { return &aDoubleRef.Ref2; } bool ScDoubleRefToken::TextEqual( const FormulaToken& _rToken ) const { return FormulaToken::operator ==(_rToken) && checkTextEqual(_rToken); } bool ScDoubleRefToken::operator==( const FormulaToken& r ) const { - return FormulaToken::operator==( r ) && aDoubleRef == static_cast<const ScToken&>(r).GetDoubleRef(); + return FormulaToken::operator==( r ) && aDoubleRef == *static_cast<const ScToken&>(r).GetDoubleRef(); } const ScRefList* ScRefListToken::GetRefList() const { return &aRefList; } @@ -798,14 +777,14 @@ ScMatrix* ScMatrixRangeToken::GetMatrix() return mpMatrix.get(); } -const ScComplexRefData& ScMatrixRangeToken::GetDoubleRef() const +const ScComplexRefData* ScMatrixRangeToken::GetDoubleRef() const { - return maRef; + return &maRef; } -ScComplexRefData& ScMatrixRangeToken::GetDoubleRef() +ScComplexRefData* ScMatrixRangeToken::GetDoubleRef() { - return maRef; + return &maRef; } bool ScMatrixRangeToken::operator==( const FormulaToken& r ) const @@ -848,14 +827,14 @@ svl::SharedString ScExternalSingleRefToken::GetString() const return maTabName; } -const ScSingleRefData& ScExternalSingleRefToken::GetSingleRef() const +const ScSingleRefData* ScExternalSingleRefToken::GetSingleRef() const { - return maSingleRef; + return &maSingleRef; } -ScSingleRefData& ScExternalSingleRefToken::GetSingleRef() +ScSingleRefData* ScExternalSingleRefToken::GetSingleRef() { - return maSingleRef; + return &maSingleRef; } bool ScExternalSingleRefToken::operator ==( const FormulaToken& r ) const @@ -869,7 +848,7 @@ bool ScExternalSingleRefToken::operator ==( const FormulaToken& r ) const if (maTabName != r.GetString()) return false; - return maSingleRef == static_cast<const ScToken&>(r).GetSingleRef(); + return maSingleRef == *static_cast<const ScToken&>(r).GetSingleRef(); } ScExternalDoubleRefToken::ScExternalDoubleRefToken( sal_uInt16 nFileId, const svl::SharedString& rTabName, const ScComplexRefData& r ) : @@ -902,34 +881,34 @@ svl::SharedString ScExternalDoubleRefToken::GetString() const return maTabName; } -const ScSingleRefData& ScExternalDoubleRefToken::GetSingleRef() const +const ScSingleRefData* ScExternalDoubleRefToken::GetSingleRef() const { - return maDoubleRef.Ref1; + return &maDoubleRef.Ref1; } -ScSingleRefData& ScExternalDoubleRefToken::GetSingleRef() +ScSingleRefData* ScExternalDoubleRefToken::GetSingleRef() { - return maDoubleRef.Ref1; + return &maDoubleRef.Ref1; } -const ScSingleRefData& ScExternalDoubleRefToken::GetSingleRef2() const +const ScSingleRefData* ScExternalDoubleRefToken::GetSingleRef2() const { - return maDoubleRef.Ref2; + return &maDoubleRef.Ref2; } -ScSingleRefData& ScExternalDoubleRefToken::GetSingleRef2() +ScSingleRefData* ScExternalDoubleRefToken::GetSingleRef2() { - return maDoubleRef.Ref2; + return &maDoubleRef.Ref2; } -const ScComplexRefData& ScExternalDoubleRefToken::GetDoubleRef() const +const ScComplexRefData* ScExternalDoubleRefToken::GetDoubleRef() const { - return maDoubleRef; + return &maDoubleRef; } -ScComplexRefData& ScExternalDoubleRefToken::GetDoubleRef() +ScComplexRefData* ScExternalDoubleRefToken::GetDoubleRef() { - return maDoubleRef; + return &maDoubleRef; } bool ScExternalDoubleRefToken::operator ==( const FormulaToken& r ) const @@ -943,7 +922,7 @@ bool ScExternalDoubleRefToken::operator ==( const FormulaToken& r ) const if (maTabName != r.GetString()) return false; - return maDoubleRef == static_cast<const ScToken&>(r).GetDoubleRef(); + return maDoubleRef == *static_cast<const ScToken&>(r).GetDoubleRef(); } ScExternalNameToken::ScExternalNameToken( sal_uInt16 nFileId, const svl::SharedString& rName ) : @@ -1537,13 +1516,13 @@ bool ScTokenArray::ImplGetReference( ScRange& rRange, const ScAddress& rPos, boo { if ( pToken->GetType() == svSingleRef ) { - const ScSingleRefData& rRef = ((const ScSingleRefToken*)pToken)->GetSingleRef(); + const ScSingleRefData& rRef = *((const ScSingleRefToken*)pToken)->GetSingleRef(); rRange.aStart = rRange.aEnd = rRef.toAbs(rPos); bIs = !bValidOnly || ValidAddress(rRange.aStart); } else if ( pToken->GetType() == svDoubleRef ) { - const ScComplexRefData& rCompl = ((const ScDoubleRefToken*)pToken)->GetDoubleRef(); + const ScComplexRefData& rCompl = *((const ScDoubleRefToken*)pToken)->GetDoubleRef(); const ScSingleRefData& rRef1 = rCompl.Ref1; const ScSingleRefData& rRef2 = rCompl.Ref2; rRange.aStart = rRef1.toAbs(rPos); @@ -1614,13 +1593,13 @@ void ScTokenArray::GenHash() break; case svSingleRef: { - size_t nVal = HashSingleRef(p->GetSingleRef()); + size_t nVal = HashSingleRef(*p->GetSingleRef()); nHash += nVal; } break; case svDoubleRef: { - const ScComplexRefData& rRef = p->GetDoubleRef(); + const ScComplexRefData& rRef = *p->GetDoubleRef(); size_t nVal1 = HashSingleRef(rRef.Ref1); size_t nVal2 = HashSingleRef(rRef.Ref2); nHash += nVal1; @@ -1654,7 +1633,7 @@ bool ScTokenArray::IsInvariant() const case svExternalSingleRef: { const ScToken* pT = static_cast<const ScToken*>(*p); - const ScSingleRefData& rRef = pT->GetSingleRef(); + const ScSingleRefData& rRef = *pT->GetSingleRef(); if (rRef.IsRowRel()) return false; } @@ -1663,7 +1642,7 @@ bool ScTokenArray::IsInvariant() const case svExternalDoubleRef: { const ScToken* pT = static_cast<const ScToken*>(*p); - const ScComplexRefData& rRef = pT->GetDoubleRef(); + const ScComplexRefData& rRef = *pT->GetDoubleRef(); if (rRef.Ref1.IsRowRel() || rRef.Ref2.IsRowRel()) return false; } @@ -2103,7 +2082,7 @@ bool ScTokenArray::GetAdjacentExtendOfOuterFuncRefs( SCCOLROW& nExtend, { case svSingleRef : { - ScSingleRefData& rRef = static_cast<ScToken*>(p)->GetSingleRef(); + ScSingleRefData& rRef = *static_cast<ScToken*>(p)->GetSingleRef(); ScAddress aAbs = rRef.toAbs(rPos); switch ( eDir ) { @@ -2140,7 +2119,7 @@ bool ScTokenArray::GetAdjacentExtendOfOuterFuncRefs( SCCOLROW& nExtend, break; case svDoubleRef : { - ScComplexRefData& rRef = static_cast<ScToken*>(p)->GetDoubleRef(); + ScComplexRefData& rRef = *static_cast<ScToken*>(p)->GetDoubleRef(); ScRange aAbs = rRef.toAbs(rPos); switch ( eDir ) { @@ -2197,9 +2176,9 @@ void ScTokenArray::ReadjustRelative3DReferences( const ScAddress& rOldPos, { case svDoubleRef : { - ScSingleRefData& rRef2 = static_cast<ScToken*>(pCode[j])->GetSingleRef2(); + ScSingleRefData& rRef2 = *static_cast<ScToken*>(pCode[j])->GetSingleRef2(); // Also adjust if the reference is of the form Sheet1.A2:A3 - if ( rRef2.IsFlag3D() || static_cast<ScToken*>(pCode[j])->GetSingleRef().IsFlag3D() ) + if ( rRef2.IsFlag3D() || static_cast<ScToken*>(pCode[j])->GetSingleRef()->IsFlag3D() ) { ScAddress aAbs = rRef2.toAbs(rOldPos); rRef2.SetAddress(aAbs, rNewPos); @@ -2208,7 +2187,7 @@ void ScTokenArray::ReadjustRelative3DReferences( const ScAddress& rOldPos, //! fallthru case svSingleRef : { - ScSingleRefData& rRef1 = static_cast<ScToken*>(pCode[j])->GetSingleRef(); + ScSingleRefData& rRef1 = *static_cast<ScToken*>(pCode[j])->GetSingleRef(); if ( rRef1.IsFlag3D() ) { ScAddress aAbs = rRef1.toAbs(rOldPos); @@ -2218,14 +2197,14 @@ void ScTokenArray::ReadjustRelative3DReferences( const ScAddress& rOldPos, break; case svExternalDoubleRef : { - ScSingleRefData& rRef2 = static_cast<ScToken*>(pCode[j])->GetSingleRef2(); + ScSingleRefData& rRef2 = *static_cast<ScToken*>(pCode[j])->GetSingleRef2(); ScAddress aAbs = rRef2.toAbs(rOldPos); rRef2.SetAddress(aAbs, rNewPos); } //! fallthru case svExternalSingleRef : { - ScSingleRefData& rRef1 = static_cast<ScToken*>(pCode[j])->GetSingleRef(); + ScSingleRefData& rRef1 = *static_cast<ScToken*>(pCode[j])->GetSingleRef(); ScAddress aAbs = rRef1.toAbs(rOldPos); rRef1.SetAddress(aAbs, rNewPos); } @@ -2268,13 +2247,13 @@ bool SkipReference(ScToken* pToken, const ScAddress& rPos, const ScDocument* pOl { case svDoubleRef: { - ScSingleRefData& rRef = pToken->GetSingleRef2(); + ScSingleRefData& rRef = *pToken->GetSingleRef2(); if (rRef.IsColRel() || rRef.IsRowRel()) return true; } // fall through case svSingleRef: { - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); if (rRef.IsColRel() || rRef.IsRowRel()) return true; } @@ -2319,7 +2298,7 @@ void ScTokenArray::ReadjustAbsolute3DReferences( const ScDocument* pOldDoc, cons if (SkipReference(static_cast<ScToken*>(pCode[j]), rPos, pOldDoc, bRangeName, true)) continue; - ScComplexRefData& rRef = static_cast<ScToken*>(pCode[j])->GetDoubleRef(); + ScComplexRefData& rRef = *static_cast<ScToken*>(pCode[j])->GetDoubleRef(); ScSingleRefData& rRef2 = rRef.Ref2; ScSingleRefData& rRef1 = rRef.Ref1; @@ -2340,7 +2319,7 @@ void ScTokenArray::ReadjustAbsolute3DReferences( const ScDocument* pOldDoc, cons if (SkipReference(static_cast<ScToken*>(pCode[j]), rPos, pOldDoc, bRangeName, true)) continue; - ScSingleRefData& rRef = static_cast<ScToken*>(pCode[j])->GetSingleRef(); + ScSingleRefData& rRef = *static_cast<ScToken*>(pCode[j])->GetSingleRef(); if ( rRef.IsFlag3D() && !rRef.IsTabRel() ) { @@ -2374,7 +2353,7 @@ void ScTokenArray::AdjustAbsoluteRefs( const ScDocument* pOldDoc, const ScAddres if (!SkipReference(static_cast<ScToken*>(pCode[j]), rOldPos, pOldDoc, false, bCheckCopyRange)) continue; - ScComplexRefData& rRef = static_cast<ScToken*>(pCode[j])->GetDoubleRef(); + ScComplexRefData& rRef = *static_cast<ScToken*>(pCode[j])->GetDoubleRef(); ScSingleRefData& rRef2 = rRef.Ref2; ScSingleRefData& rRef1 = rRef.Ref1; @@ -2390,7 +2369,7 @@ void ScTokenArray::AdjustAbsoluteRefs( const ScDocument* pOldDoc, const ScAddres if (!SkipReference(static_cast<ScToken*>(pCode[j]), rOldPos, pOldDoc, false, bCheckCopyRange)) continue; - ScSingleRefData& rRef = static_cast<ScToken*>(pCode[j])->GetSingleRef(); + ScSingleRefData& rRef = *static_cast<ScToken*>(pCode[j])->GetSingleRef(); // for range names only adjust if all parts are absolute if (!bRangeName || !(rRef.IsColRel() || rRef.IsRowRel() || rRef.IsTabRel())) @@ -2646,7 +2625,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnShift( const sc::RefUpdateCon case svSingleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); ScAddress aAbs = rRef.toAbs(rOldPos); if (rCxt.isDeleted() && aSelectedRange.In(aAbs)) @@ -2681,7 +2660,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnShift( const sc::RefUpdateCon case svDoubleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScComplexRefData& rRef = pToken->GetDoubleRef(); + ScComplexRefData& rRef = *pToken->GetDoubleRef(); ScRange aAbs = rRef.toAbs(rOldPos); if (rCxt.isDeleted()) @@ -2747,7 +2726,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnShift( const sc::RefUpdateCon // For external reference, just reset the reference with // respect to the new cell position. ScToken* pToken = static_cast<ScToken*>(*p); - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); ScAddress aAbs = rRef.toAbs(rOldPos); rRef.SetAddress(aAbs, aNewPos); } @@ -2756,7 +2735,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnShift( const sc::RefUpdateCon { // Same as above. ScToken* pToken = static_cast<ScToken*>(*p); - ScComplexRefData& rRef = pToken->GetDoubleRef(); + ScComplexRefData& rRef = *pToken->GetDoubleRef(); ScRange aAbs = rRef.toAbs(rOldPos); rRef.SetRange(aAbs, aNewPos); } @@ -2800,7 +2779,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnMove( case svSingleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); ScAddress aAbs = rRef.toAbs(rOldPos); if (aOldRange.In(aAbs)) { @@ -2816,7 +2795,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnMove( case svDoubleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScComplexRefData& rRef = pToken->GetDoubleRef(); + ScComplexRefData& rRef = *pToken->GetDoubleRef(); ScRange aAbs = rRef.toAbs(rOldPos); if (aOldRange.In(aAbs)) { @@ -2859,7 +2838,7 @@ sc::RefUpdateResult ScTokenArray::MoveReference( const ScAddress& rPos, const sc case svSingleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); ScAddress aAbs = rRef.toAbs(rPos); if (aOldRange.In(aAbs)) { @@ -2873,7 +2852,7 @@ sc::RefUpdateResult ScTokenArray::MoveReference( const ScAddress& rPos, const sc case svDoubleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScComplexRefData& rRef = pToken->GetDoubleRef(); + ScComplexRefData& rRef = *pToken->GetDoubleRef(); ScRange aAbs = rRef.toAbs(rPos); if (aOldRange.In(aAbs)) { @@ -2910,7 +2889,7 @@ void ScTokenArray::MoveReferenceColReorder( case svSingleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); ScAddress aAbs = rRef.toAbs(rPos); if (aAbs.Tab() == nTab && nRow1 <= aAbs.Row() && aAbs.Row() <= nRow2) @@ -2930,7 +2909,7 @@ void ScTokenArray::MoveReferenceColReorder( case svDoubleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScComplexRefData& rRef = pToken->GetDoubleRef(); + ScComplexRefData& rRef = *pToken->GetDoubleRef(); ScRange aAbs = rRef.toAbs(rPos); if (aAbs.aStart.Tab() != aAbs.aEnd.Tab()) @@ -2973,7 +2952,7 @@ void ScTokenArray::MoveReferenceRowReorder( const ScAddress& rPos, SCTAB nTab, S case svSingleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); ScAddress aAbs = rRef.toAbs(rPos); if (aAbs.Tab() == nTab && nCol1 <= aAbs.Col() && aAbs.Col() <= nCol2) @@ -2993,7 +2972,7 @@ void ScTokenArray::MoveReferenceRowReorder( const ScAddress& rPos, SCTAB nTab, S case svDoubleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScComplexRefData& rRef = pToken->GetDoubleRef(); + ScComplexRefData& rRef = *pToken->GetDoubleRef(); ScRange aAbs = rRef.toAbs(rPos); if (aAbs.aStart.Tab() != aAbs.aEnd.Tab()) @@ -3122,7 +3101,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceInName( case svSingleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); if (adjustSingleRefInName(rRef, rCxt, rPos)) aRes.mbReferenceModified = true; } @@ -3130,7 +3109,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceInName( case svDoubleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScComplexRefData& rRef = pToken->GetDoubleRef(); + ScComplexRefData& rRef = *pToken->GetDoubleRef(); ScRange aAbs = rRef.toAbs(rPos); if (rCxt.maRange.In(aAbs)) { @@ -3240,7 +3219,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceInMovedName( const sc::RefUpdat case svSingleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); if (rRef.IsColRel() || rRef.IsRowRel() || rRef.IsTabRel()) continue; @@ -3257,7 +3236,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceInMovedName( const sc::RefUpdat case svDoubleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScComplexRefData& rRef = pToken->GetDoubleRef(); + ScComplexRefData& rRef = *pToken->GetDoubleRef(); if (rRef.Ref1.IsColRel() || rRef.Ref1.IsRowRel() || rRef.Ref1.IsTabRel() || rRef.Ref2.IsColRel() || rRef.Ref2.IsRowRel() || rRef.Ref2.IsTabRel()) continue; @@ -3346,7 +3325,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnDeletedTab( sc::RefUpdateDele case svSingleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); if (adjustSingleRefOnDeletedTab(rRef, rCxt.mnDeletePos, rCxt.mnSheets, rOldPos, aNewPos)) aRes.mbReferenceModified = true; } @@ -3354,7 +3333,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnDeletedTab( sc::RefUpdateDele case svDoubleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScComplexRefData& rRef = pToken->GetDoubleRef(); + ScComplexRefData& rRef = *pToken->GetDoubleRef(); if (adjustSingleRefOnDeletedTab(rRef.Ref1, rCxt.mnDeletePos, rCxt.mnSheets, rOldPos, aNewPos)) aRes.mbReferenceModified = true; if (adjustSingleRefOnDeletedTab(rRef.Ref2, rCxt.mnDeletePos, rCxt.mnSheets, rOldPos, aNewPos)) @@ -3390,7 +3369,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnInsertedTab( sc::RefUpdateIns case svSingleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); if (adjustSingleRefOnInsertedTab(rRef, rCxt.mnInsertPos, rCxt.mnSheets, rOldPos, aNewPos)) aRes.mbReferenceModified = true; } @@ -3398,7 +3377,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnInsertedTab( sc::RefUpdateIns case svDoubleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScComplexRefData& rRef = pToken->GetDoubleRef(); + ScComplexRefData& rRef = *pToken->GetDoubleRef(); if (adjustSingleRefOnInsertedTab(rRef.Ref1, rCxt.mnInsertPos, rCxt.mnSheets, rOldPos, aNewPos)) aRes.mbReferenceModified = true; if (adjustSingleRefOnInsertedTab(rRef.Ref2, rCxt.mnInsertPos, rCxt.mnSheets, rOldPos, aNewPos)) @@ -3451,7 +3430,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnMovedTab( sc::RefUpdateMoveTa case svSingleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); ScAddress aAbs = rRef.toAbs(rOldPos); if (adjustTabOnMove(aAbs, rCxt)) aRes.mbReferenceModified = true; @@ -3461,7 +3440,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnMovedTab( sc::RefUpdateMoveTa case svDoubleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScComplexRefData& rRef = pToken->GetDoubleRef(); + ScComplexRefData& rRef = *pToken->GetDoubleRef(); ScRange aAbs = rRef.toAbs(rOldPos); if (adjustTabOnMove(aAbs.aStart, rCxt)) aRes.mbReferenceModified = true; @@ -3496,7 +3475,7 @@ void ScTokenArray::AdjustReferenceOnMovedOrigin( const ScAddress& rOldPos, const case svExternalSingleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); ScAddress aAbs = rRef.toAbs(rOldPos); rRef.SetAddress(aAbs, rNewPos); } @@ -3505,7 +3484,7 @@ void ScTokenArray::AdjustReferenceOnMovedOrigin( const ScAddress& rOldPos, const case svExternalDoubleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScComplexRefData& rRef = pToken->GetDoubleRef(); + ScComplexRefData& rRef = *pToken->GetDoubleRef(); ScRange aAbs = rRef.toAbs(rOldPos); rRef.SetRange(aAbs, rNewPos); } @@ -3544,14 +3523,14 @@ void ScTokenArray::ClearTabDeleted( const ScAddress& rPos, SCTAB nStartTab, SCTA case svSingleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); clearTabDeletedFlag(rRef, rPos, nStartTab, nEndTab); } break; case svDoubleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScComplexRefData& rRef = pToken->GetDoubleRef(); + ScComplexRefData& rRef = *pToken->GetDoubleRef(); clearTabDeletedFlag(rRef.Ref1, rPos, nStartTab, nEndTab); clearTabDeletedFlag(rRef.Ref2, rPos, nStartTab, nEndTab); } @@ -3641,13 +3620,13 @@ void ScTokenArray::CheckRelativeReferenceBounds( case svSingleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - checkBounds(rCxt, rPos, nGroupLen, pToken->GetSingleRef(), rBounds); + checkBounds(rCxt, rPos, nGroupLen, *pToken->GetSingleRef(), rBounds); } break; case svDoubleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - const ScComplexRefData& rRef = pToken->GetDoubleRef(); + const ScComplexRefData& rRef = *pToken->GetDoubleRef(); checkBounds(rCxt, rPos, nGroupLen, rRef.Ref1, rBounds); checkBounds(rCxt, rPos, nGroupLen, rRef.Ref2, rBounds); } @@ -3670,14 +3649,14 @@ void ScTokenArray::CheckRelativeReferenceBounds( case svSingleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - const ScSingleRefData& rRef = pToken->GetSingleRef(); + const ScSingleRefData& rRef = *pToken->GetSingleRef(); checkBounds(rPos, nGroupLen, rRange, rRef, rBounds); } break; case svDoubleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - const ScComplexRefData& rRef = pToken->GetDoubleRef(); + const ScComplexRefData& rRef = *pToken->GetDoubleRef(); checkBounds(rPos, nGroupLen, rRange, rRef.Ref1, rBounds); checkBounds(rPos, nGroupLen, rRange, rRef.Ref2, rBounds); } @@ -3733,7 +3712,7 @@ void appendTokenByType( sc::TokenStringContext& rCxt, OUStringBuffer& rBuf, cons break; case svExternalSingleRef: rCxt.mpRefConv->makeExternalRefStr( - rBuf, rPos, nFileId, aFileName, aTabName, static_cast<const ScToken&>(rToken).GetSingleRef()); + rBuf, rPos, nFileId, aFileName, aTabName, *static_cast<const ScToken&>(rToken).GetSingleRef()); break; case svExternalDoubleRef: { @@ -3745,7 +3724,7 @@ void appendTokenByType( sc::TokenStringContext& rCxt, OUStringBuffer& rBuf, cons rCxt.mpRefConv->makeExternalRefStr( rBuf, rPos, nFileId, aFileName, it->second, aTabName, - static_cast<const ScToken&>(rToken).GetDoubleRef()); + *static_cast<const ScToken&>(rToken).GetDoubleRef()); } break; default: @@ -3778,7 +3757,7 @@ void appendTokenByType( sc::TokenStringContext& rCxt, OUStringBuffer& rBuf, cons { if (rCxt.mpRefConv) { - const ScSingleRefData& rRef = static_cast<const ScToken&>(rToken).GetSingleRef(); + const ScSingleRefData& rRef = *static_cast<const ScToken&>(rToken).GetSingleRef(); ScComplexRefData aRef; aRef.Ref1 = rRef; aRef.Ref2 = rRef; @@ -3792,7 +3771,7 @@ void appendTokenByType( sc::TokenStringContext& rCxt, OUStringBuffer& rBuf, cons { if (rCxt.mpRefConv) { - const ScComplexRefData& rRef = static_cast<const ScToken&>(rToken).GetDoubleRef(); + const ScComplexRefData& rRef = *static_cast<const ScToken&>(rToken).GetDoubleRef(); rCxt.mpRefConv->makeRefStr(rBuf, rCxt.meGram, rPos, rCxt.maErrRef, rCxt.maTabNames, rRef, false); } else @@ -4025,7 +4004,7 @@ void ScTokenArray::WrapReference( const ScAddress& rPos, SCCOL nMaxCol, SCROW nM case svSingleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScSingleRefData& rRef = pToken->GetSingleRef(); + ScSingleRefData& rRef = *pToken->GetSingleRef(); ScAddress aAbs = rRef.toAbs(rPos); wrapAddress(aAbs, nMaxCol, nMaxRow); rRef.SetAddress(aAbs, rPos); @@ -4034,7 +4013,7 @@ void ScTokenArray::WrapReference( const ScAddress& rPos, SCCOL nMaxCol, SCROW nM case svDoubleRef: { ScToken* pToken = static_cast<ScToken*>(*p); - ScComplexRefData& rRef = pToken->GetDoubleRef(); + ScComplexRefData& rRef = *pToken->GetDoubleRef(); ScRange aAbs = rRef.toAbs(rPos); wrapAddress(aAbs.aStart, nMaxCol, nMaxRow); wrapAddress(aAbs.aEnd, nMaxCol, nMaxRow); diff --git a/sc/source/filter/excel/xechart.cxx b/sc/source/filter/excel/xechart.cxx index 11a29a22c8de..b64285a932ec 100644 --- a/sc/source/filter/excel/xechart.cxx +++ b/sc/source/filter/excel/xechart.cxx @@ -922,7 +922,7 @@ sal_uInt16 XclExpChSourceLink::ConvertDataSequence( Reference< XDataSequence > x case ::formula::svExternalDoubleRef: { // split 3-dimensional ranges into single sheets - const ScComplexRefData& rComplexRef = static_cast< const ScToken* >( pToken )->GetDoubleRef(); + const ScComplexRefData& rComplexRef = *static_cast< const ScToken* >( pToken )->GetDoubleRef(); ScAddress aAbs1 = rComplexRef.Ref1.toAbs(ScAddress()); ScAddress aAbs2 = rComplexRef.Ref2.toAbs(ScAddress()); for (SCsTAB nScTab = aAbs1.Tab(); nScTab <= aAbs2.Tab(); ++nScTab) diff --git a/sc/source/filter/excel/xeformula.cxx b/sc/source/filter/excel/xeformula.cxx index 1cd20563001e..a64a6354bea3 100644 --- a/sc/source/filter/excel/xeformula.cxx +++ b/sc/source/filter/excel/xeformula.cxx @@ -1901,7 +1901,7 @@ void XclExpFmlaCompImpl::ProcessCellRef( const XclExpScToken& rTokData ) { // get the Excel address components, adjust internal data in aRefData bool bNatLangRef = (meBiff == EXC_BIFF8) && mxData->mpScBasePos && (rTokData.GetOpCode() == ocColRowName); - ScSingleRefData aRefData = static_cast< const ScToken* >( rTokData.mpScToken )->GetSingleRef(); + ScSingleRefData aRefData = *static_cast< const ScToken* >( rTokData.mpScToken )->GetSingleRef(); XclAddress aXclPos( ScAddress::UNINITIALIZED ); ConvertRefData( aRefData, aXclPos, bNatLangRef, false, false ); @@ -1958,7 +1958,7 @@ void XclExpFmlaCompImpl::ProcessCellRef( const XclExpScToken& rTokData ) void XclExpFmlaCompImpl::ProcessRangeRef( const XclExpScToken& rTokData ) { // get the Excel address components, adjust internal data in aRefData - ScComplexRefData aRefData = static_cast< const ScToken* >( rTokData.mpScToken )->GetDoubleRef(); + ScComplexRefData aRefData = *static_cast< const ScToken* >( rTokData.mpScToken )->GetDoubleRef(); XclRange aXclRange( ScAddress::UNINITIALIZED ); ConvertRefData( aRefData, aXclRange, false ); @@ -2005,7 +2005,7 @@ void XclExpFmlaCompImpl::ProcessExternalCellRef( const XclExpScToken& rTokData ) if( mxData->mpLinkMgr ) { // get the Excel address components, adjust internal data in aRefData - ScSingleRefData aRefData = static_cast< const ScToken* >( rTokData.mpScToken )->GetSingleRef(); + ScSingleRefData aRefData = *static_cast< const ScToken* >( rTokData.mpScToken )->GetSingleRef(); XclAddress aXclPos( ScAddress::UNINITIALIZED ); ConvertRefData( aRefData, aXclPos, false, false, false ); @@ -2041,7 +2041,7 @@ void XclExpFmlaCompImpl::ProcessExternalRangeRef( const XclExpScToken& rTokData if( mxData->mpLinkMgr ) { // get the Excel address components, adjust internal data in aRefData - ScComplexRefData aRefData = static_cast< const ScToken* >( rTokData.mpScToken )->GetDoubleRef(); + ScComplexRefData aRefData = *static_cast< const ScToken* >( rTokData.mpScToken )->GetDoubleRef(); XclRange aXclRange( ScAddress::UNINITIALIZED ); ConvertRefData( aRefData, aXclRange, false ); @@ -2127,14 +2127,14 @@ void XclExpFmlaCompImpl::ProcessExternalName( const XclExpScToken& rTokData ) { case svExternalSingleRef: { - ScSingleRefData aRefData = static_cast< ScToken* >( pScToken )->GetSingleRef(); + ScSingleRefData aRefData = *static_cast< ScToken* >( pScToken )->GetSingleRef(); mxData->mpLinkMgr->StoreCell( nFileId, pScToken->GetString().getString(), aRefData.toAbs(*mxData->mpScBasePos)); } break; case svExternalDoubleRef: { - ScComplexRefData aRefData = static_cast< ScToken* >( pScToken )->GetDoubleRef(); + ScComplexRefData aRefData = *static_cast< ScToken* >( pScToken )->GetDoubleRef(); mxData->mpLinkMgr->StoreCellRange( nFileId, pScToken->GetString().getString(), aRefData.toAbs(*mxData->mpScBasePos)); } diff --git a/sc/source/filter/excel/xelink.cxx b/sc/source/filter/excel/xelink.cxx index 7e7786d063ff..e9ff858420ad 100644 --- a/sc/source/filter/excel/xelink.cxx +++ b/sc/source/filter/excel/xelink.cxx @@ -977,7 +977,7 @@ void XclExpExtName::WriteAddData( XclExpStream& rStrm ) { case svExternalSingleRef: { - const ScSingleRefData& rRef = p->GetSingleRef(); + const ScSingleRefData& rRef = *p->GetSingleRef(); if (rRef.IsTabRel()) break; @@ -1001,7 +1001,7 @@ void XclExpExtName::WriteAddData( XclExpStream& rStrm ) } case svExternalDoubleRef: { - const ScComplexRefData& rRef = p->GetDoubleRef(); + const ScComplexRefData& rRef = *p->GetDoubleRef(); const ScSingleRefData& r1 = rRef.Ref1; const ScSingleRefData& r2 = rRef.Ref2; if (r1.IsTabRel() || r2.IsTabRel()) diff --git a/sc/source/filter/excel/xetable.cxx b/sc/source/filter/excel/xetable.cxx index ed4b1377c0d8..f9c84583c2bd 100644 --- a/sc/source/filter/excel/xetable.cxx +++ b/sc/source/filter/excel/xetable.cxx @@ -156,7 +156,7 @@ XclExpArrayRef XclExpArrayBuffer::FindArray( const ScTokenArray& rScTokArr, cons // not a matrix reference token. return xRec; - const ScSingleRefData& rRef = static_cast<const ScToken*>(pToken)->GetSingleRef(); + const ScSingleRefData& rRef = *static_cast<const ScToken*>(pToken)->GetSingleRef(); ScAddress aAbsPos = rRef.toAbs(rBasePos); XclExpArrayMap::const_iterator it = maRecMap.find(aAbsPos); @@ -212,7 +212,7 @@ bool XclExpShrfmlaBuffer::IsValidTokenArray( const ScTokenArray& rArray ) const { case svSingleRef: { - const ScSingleRefData& rRefData = static_cast<const ScToken*>(p)->GetSingleRef(); + const ScSingleRefData& rRefData = *static_cast<const ScToken*>(p)->GetSingleRef(); if (!GetFormulaCompiler().IsRef2D(rRefData)) // Excel's shared formula cannot include 3D reference. return false; @@ -220,7 +220,7 @@ bool XclExpShrfmlaBuffer::IsValidTokenArray( const ScTokenArray& rArray ) const break; case svDoubleRef: { - const ScComplexRefData& rRefData = static_cast<const ScToken*>(p)->GetDoubleRef(); + const ScComplexRefData& rRefData = *static_cast<const ScToken*>(p)->GetDoubleRef(); if (!GetFormulaCompiler().IsRef2D(rRefData)) // Excel's shared formula cannot include 3D reference. return false; diff --git a/sc/source/filter/excel/xichart.cxx b/sc/source/filter/excel/xichart.cxx index c65e558ca946..ad0836f9d4c1 100644 --- a/sc/source/filter/excel/xichart.cxx +++ b/sc/source/filter/excel/xichart.cxx @@ -780,7 +780,7 @@ sal_uInt16 XclImpChSourceLink::GetCellCount() const case ::formula::svExternalDoubleRef: { // cell range - const ScComplexRefData& rComplexRef = static_cast< const ScToken* >( pToken )->GetDoubleRef(); + const ScComplexRefData& rComplexRef = *static_cast< const ScToken* >( pToken )->GetDoubleRef(); ScAddress aAbs1 = rComplexRef.Ref1.toAbs(ScAddress()); ScAddress aAbs2 = rComplexRef.Ref2.toAbs(ScAddress()); sal_uInt32 nTabs = static_cast<sal_uInt32>(aAbs2.Tab() - aAbs1.Tab() + 1); diff --git a/sc/source/filter/excel/xlformula.cxx b/sc/source/filter/excel/xlformula.cxx index abb9c2d81112..d345fa240683 100644 --- a/sc/source/filter/excel/xlformula.cxx +++ b/sc/source/filter/excel/xlformula.cxx @@ -884,7 +884,7 @@ inline bool lclGetAddress( ScAddress& rAddress, const FormulaToken& rToken, cons bool bIsSingleRef = (eOpCode == ocPush) && (rToken.GetType() == svSingleRef); if( bIsSingleRef ) { - const ScSingleRefData& rRef = static_cast<const ScToken&>(rToken).GetSingleRef(); + const ScSingleRefData& rRef = *static_cast<const ScToken&>(rToken).GetSingleRef(); rAddress = rRef.toAbs(rPos); bIsSingleRef = !rRef.IsDeleted(); } diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx index ba92b732dbbb..ec3ecf116ca4 100644 --- a/sc/source/ui/docshell/externalrefmgr.cxx +++ b/sc/source/ui/docshell/externalrefmgr.cxx @@ -2185,20 +2185,20 @@ ScExternalRefCache::TokenArrayRef ScExternalRefManager::getRangeNameTokensFromSr { case svSingleRef: { - const ScSingleRefData& rRef = static_cast<const ScToken*>(pToken)->GetSingleRef(); + const ScSingleRefData& rRef = *static_cast<const ScToken*>(pToken)->GetSingleRef(); OUString aTabName; pSrcDoc->GetName(rRef.Tab(), aTabName); - ScExternalSingleRefToken aNewToken(nFileId, aTabName, static_cast<const ScToken*>(pToken)->GetSingleRef()); + ScExternalSingleRefToken aNewToken(nFileId, aTabName, *static_cast<const ScToken*>(pToken)->GetSingleRef()); pNew->AddToken(aNewToken); bTokenAdded = true; } break; case svDoubleRef: { - const ScSingleRefData& rRef = static_cast<const ScToken*>(pToken)->GetSingleRef(); + const ScSingleRefData& rRef = *static_cast<const ScToken*>(pToken)->GetSingleRef(); OUString aTabName; pSrcDoc->GetName(rRef.Tab(), aTabName); - ScExternalDoubleRefToken aNewToken(nFileId, aTabName, static_cast<const ScToken*>(pToken)->GetDoubleRef()); + ScExternalDoubleRefToken aNewToken(nFileId, aTabName, *static_cast<const ScToken*>(pToken)->GetDoubleRef()); pNew->AddToken(aNewToken); bTokenAdded = true; } diff --git a/sc/source/ui/miscdlgs/anyrefdg.cxx b/sc/source/ui/miscdlgs/anyrefdg.cxx index 348dddb6341c..3e182f8ad1d9 100644 --- a/sc/source/ui/miscdlgs/anyrefdg.cxx +++ b/sc/source/ui/miscdlgs/anyrefdg.cxx @@ -209,12 +209,12 @@ void ScFormulaReferenceHelper::ShowFormulaReference(const OUString& rStr) ScRange aRange; if(bDoubleRef) { - ScComplexRefData aRef( pToken->GetDoubleRef() ); + ScComplexRefData aRef( *pToken->GetDoubleRef() ); aRange = aRef.toAbs(aPos); } else { - ScSingleRefData aRef( pToken->GetSingleRef() ); + ScSingleRefData aRef( *pToken->GetSingleRef() ); aRange.aStart = aRef.toAbs(aPos); aRange.aEnd = aRange.aStart; } diff --git a/sc/source/ui/unoobj/chart2uno.cxx b/sc/source/ui/unoobj/chart2uno.cxx index b8a62ab7d751..b083634ed971 100644 --- a/sc/source/ui/unoobj/chart2uno.cxx +++ b/sc/source/ui/unoobj/chart2uno.cxx @@ -1118,7 +1118,7 @@ bool lcl_addUpperLeftCornerIfMissing(vector<ScTokenRef>& rRefTokens, { case svSingleRef: { - const ScSingleRefData& rData = pToken->GetSingleRef(); + const ScSingleRefData& rData = *pToken->GetSingleRef(); nMinCol = rData.Col(); nMinRow = rData.Row(); nMaxCol = rData.Col(); @@ -1128,7 +1128,7 @@ bool lcl_addUpperLeftCornerIfMissing(vector<ScTokenRef>& rRefTokens, break; case svDoubleRef: { - const ScComplexRefData& rData = pToken->GetDoubleRef(); + const ScComplexRefData& rData = *pToken->GetDoubleRef(); nMinCol = min(rData.Ref1.Col(), rData.Ref2.Col()); nMinRow = min(rData.Ref1.Row(), rData.Ref2.Row()); nMaxCol = max(rData.Ref1.Col(), rData.Ref2.Col()); @@ -1138,7 +1138,7 @@ bool lcl_addUpperLeftCornerIfMissing(vector<ScTokenRef>& rRefTokens, break; case svExternalSingleRef: { - const ScSingleRefData& rData = pToken->GetSingleRef(); + const ScSingleRefData& rData = *pToken->GetSingleRef(); nMinCol = rData.Col(); nMinRow = rData.Row(); nMaxCol = rData.Col(); @@ -1151,7 +1151,7 @@ bool lcl_addUpperLeftCornerIfMissing(vector<ScTokenRef>& rRefTokens, break; case svExternalDoubleRef: { - const ScComplexRefData& rData = pToken->GetDoubleRef(); + const ScComplexRefData& rData = *pToken->GetDoubleRef(); nMinCol = min(rData.Ref1.Col(), rData.Ref2.Col()); nMinRow = min(rData.Ref1.Row(), rData.Ref2.Row()); nMaxCol = max(rData.Ref1.Col(), rData.Ref2.Col()); @@ -1176,7 +1176,7 @@ bool lcl_addUpperLeftCornerIfMissing(vector<ScTokenRef>& rRefTokens, { case svSingleRef: { - const ScSingleRefData& rData = pToken->GetSingleRef(); + const ScSingleRefData& rData = *pToken->GetSingleRef(); nMinCol = min(nMinCol, rData.Col()); nMinRow = min(nMinRow, rData.Row()); @@ -1188,7 +1188,7 @@ bool lcl_addUpperLeftCornerIfMissing(vector<ScTokenRef>& rRefTokens, break; case svDoubleRef: { - const ScComplexRefData& rData = pToken->GetDoubleRef(); + const ScComplexRefData& rData = *pToken->GetDoubleRef(); nMinCol = min(nMinCol, rData.Ref1.Col()); nMinCol = min(nMinCol, rData.Ref2.Col()); @@ -1212,7 +1212,7 @@ bool lcl_addUpperLeftCornerIfMissing(vector<ScTokenRef>& rRefTokens, if (nFileId != pToken->GetIndex() || aExtTabName != pToken->GetString()) return false; - const ScSingleRefData& rData = pToken->GetSingleRef(); + const ScSingleRefData& rData = *pToken->GetSingleRef(); nMinCol = min(nMinCol, rData.Col()); nMinRow = min(nMinRow, rData.Row()); @@ -1228,7 +1228,7 @@ bool lcl_addUpperLeftCornerIfMissing(vector<ScTokenRef>& rRefTokens, if (nFileId != pToken->GetIndex() || aExtTabName != pToken->GetString()) return false; - const ScComplexRefData& rData = pToken->GetDoubleRef(); + const ScComplexRefData& rData = *pToken->GetDoubleRef(); nMinCol = min(nMinCol, rData.Ref1.Col()); nMinCol = min(nMinCol, rData.Ref2.Col()); @@ -1268,7 +1268,7 @@ bool lcl_addUpperLeftCornerIfMissing(vector<ScTokenRef>& rRefTokens, case svSingleRef: case svExternalSingleRef: { - const ScSingleRefData& rData = pToken->GetSingleRef(); + const ScSingleRefData& rData = *pToken->GetSingleRef(); if (rData.Col() == nMinCol && rData.Row() == nMinRow) // The corner cell is contained. return false; @@ -1286,7 +1286,7 @@ bool lcl_addUpperLeftCornerIfMissing(vector<ScTokenRef>& rRefTokens, case svDoubleRef: case svExternalDoubleRef: { - const ScComplexRefData& rData = pToken->GetDoubleRef(); + const ScComplexRefData& rData = *pToken->GetDoubleRef(); const ScSingleRefData& r1 = rData.Ref1; const ScSingleRefData& r2 = rData.Ref2; if (r1.Col() <= nMinCol && nMinCol <= r2.Col() && @@ -1378,7 +1378,7 @@ public: if (rRef->GetType() != svDoubleRef) return; - ScComplexRefData& rData = rRef->GetDoubleRef(); + ScComplexRefData& rData = *rRef->GetDoubleRef(); ScSingleRefData& s = rData.Ref1; ScSingleRefData& e = rData.Ref2; @@ -1490,7 +1490,7 @@ ScChart2DataProvider::createDataSource( if ((*itr)->GetType() != svDoubleRef) continue; - ScComplexRefData& rData = (*itr)->GetDoubleRef(); + ScComplexRefData& rData = *(*itr)->GetDoubleRef(); ScSingleRefData& s = rData.Ref1; ScSingleRefData& e = rData.Ref2; @@ -1630,7 +1630,7 @@ public: if (!ScRefTokenHelper::isRef(pToken)) return; - const ScSingleRefData& r = pToken->GetSingleRef(); + const ScSingleRefData& r = *pToken->GetSingleRef(); mpTabNumList->push_back(r.Tab()); } @@ -1695,7 +1695,7 @@ void RangeAnalyzer::initRangeAnalyzer( const vector<ScTokenRef>& rTokens ) StackVar eVar = aRefToken->GetType(); if (eVar == svDoubleRef || eVar == svExternalDoubleRef) { - const ScComplexRefData& r = aRefToken->GetDoubleRef(); + const ScComplexRefData& r = *aRefToken->GetDoubleRef(); if (r.Ref1.Tab() == r.Ref2.Tab()) { mnColumnCount = std::max<SCCOL>(mnColumnCount, static_cast<SCCOL>(abs(r.Ref2.Col() - r.Ref1.Col())+1)); @@ -1716,7 +1716,7 @@ void RangeAnalyzer::initRangeAnalyzer( const vector<ScTokenRef>& rTokens ) } else if (eVar == svSingleRef || eVar == svExternalSingleRef) { - const ScSingleRefData& r = aRefToken->GetSingleRef(); + const ScSingleRefData& r = *aRefToken->GetSingleRef(); mnColumnCount = std::max<SCCOL>( mnColumnCount, 1); mnRowCount = std::max<SCROW>( mnRowCount, 1); if( mnStartColumn == -1 ) @@ -3596,7 +3596,7 @@ sal_Bool ScChart2DataSequence::switchToNext(sal_Bool bWrap) if ((*itr)->GetType() != svDoubleRef) continue; - ScComplexRefData& rData = (*itr)->GetDoubleRef(); + ScComplexRefData& rData = *(*itr)->GetDoubleRef(); ScSingleRefData& s = rData.Ref1; ScSingleRefData& e = rData.Ref2; @@ -3635,7 +3635,7 @@ sal_Bool ScChart2DataSequence::setToPointInTime(sal_Int32 nPoint) if ((*itr)->GetType() != svDoubleRef) continue; - ScComplexRefData& rData = (*itr)->GetDoubleRef(); + ScComplexRefData& rData = *(*itr)->GetDoubleRef(); ScSingleRefData& s = rData.Ref1; ScSingleRefData& e = rData.Ref2; diff --git a/sc/source/ui/unoobj/tokenuno.cxx b/sc/source/ui/unoobj/tokenuno.cxx index 5e5d595ba359..b82383d1cbd9 100644 --- a/sc/source/ui/unoobj/tokenuno.cxx +++ b/sc/source/ui/unoobj/tokenuno.cxx @@ -408,15 +408,15 @@ bool ScTokenConversion::ConvertToTokenSequence( const ScDocument& rDoc, case svSingleRef: { sheet::SingleReference aSingleRef; - lcl_SingleRefToApi( aSingleRef, static_cast<const ScToken&>(rToken).GetSingleRef() ); + lcl_SingleRefToApi( aSingleRef, *static_cast<const ScToken&>(rToken).GetSingleRef() ); rAPI.Data <<= aSingleRef; } break; case formula::svDoubleRef: { sheet::ComplexReference aCompRef; - lcl_SingleRefToApi( aCompRef.Reference1, static_cast<const ScToken&>(rToken).GetSingleRef() ); - lcl_SingleRefToApi( aCompRef.Reference2, static_cast<const ScToken&>(rToken).GetSingleRef2() ); + lcl_SingleRefToApi( aCompRef.Reference1, *static_cast<const ScToken&>(rToken).GetSingleRef() ); + lcl_SingleRefToApi( aCompRef.Reference2, *static_cast<const ScToken&>(rToken).GetSingleRef2() ); rAPI.Data <<= aCompRef; } break; @@ -435,7 +435,7 @@ bool ScTokenConversion::ConvertToTokenSequence( const ScDocument& rDoc, case svExternalSingleRef: { sheet::SingleReference aSingleRef; - lcl_ExternalRefToApi( aSingleRef, static_cast<const ScToken&>(rToken).GetSingleRef() ); + lcl_ExternalRefToApi( aSingleRef, *static_cast<const ScToken&>(rToken).GetSingleRef() ); size_t nCacheId; rDoc.GetExternalRefManager()->getCacheTable( rToken.GetIndex(), rToken.GetString().getString(), false, &nCacheId); @@ -450,8 +450,8 @@ bool ScTokenConversion::ConvertToTokenSequence( const ScDocument& rDoc, case svExternalDoubleRef: { sheet::ComplexReference aComplRef; - lcl_ExternalRefToApi( aComplRef.Reference1, static_cast<const ScToken&>(rToken).GetSingleRef() ); - lcl_ExternalRefToApi( aComplRef.Reference2, static_cast<const ScToken&>(rToken).GetSingleRef2() ); + lcl_ExternalRefToApi( aComplRef.Reference1, *static_cast<const ScToken&>(rToken).GetSingleRef() ); + lcl_ExternalRefToApi( aComplRef.Reference2, *static_cast<const ScToken&>(rToken).GetSingleRef2() ); size_t nCacheId; rDoc.GetExternalRefManager()->getCacheTable( rToken.GetIndex(), rToken.GetString().getString(), false, &nCacheId); @@ -459,7 +459,7 @@ bool ScTokenConversion::ConvertToTokenSequence( const ScDocument& rDoc, // NOTE: This assumes that cached sheets are in consecutive order! aComplRef.Reference2.Sheet = aComplRef.Reference1.Sheet + - (static_cast<const ScToken&>(rToken).GetSingleRef2().Tab() - static_cast<const ScToken&>(rToken).GetSingleRef().Tab()); + (static_cast<const ScToken&>(rToken).GetSingleRef2()->Tab() - static_cast<const ScToken&>(rToken).GetSingleRef()->Tab()); sheet::ExternalReference aExtRef; aExtRef.Index = rToken.GetIndex(); aExtRef.Reference <<= aComplRef; |