sc/source/core/tool/compiler.cxx | 18 ++++++------ sc/source/core/tool/token.cxx | 56 +++++++++++++++------------------------ 2 files changed, 31 insertions(+), 43 deletions(-)
New commits: commit cd4cd0bb0b68d92998148b83bdf8c9b98970f2ce Author: Kohei Yoshida <kohei.yosh...@gmail.com> Date: Fri Jul 19 23:22:42 2013 -0400 More on removing use of CalcAbsIfRel(). Change-Id: I7706148d3a7376ca9b0c0d9c907559b384d57f14 diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx index 0f4f484..f778321 100644 --- a/sc/source/core/tool/compiler.cxx +++ b/sc/source/core/tool/compiler.cxx @@ -4989,10 +4989,10 @@ void ScCompiler::CreateStringFromSingleRef(OUStringBuffer& rBuffer,FormulaToken* aRef.Ref1 = aRef.Ref2 = rRef; if ( eOp == ocColRowName ) { - rRef.CalcAbsIfRel( aPos ); - if ( pDoc->HasStringData( rRef.nCol, rRef.nRow, rRef.nTab ) ) + ScAddress aAbs = rRef.toAbs(aPos); + if (pDoc->HasStringData(aAbs.Col(), aAbs.Row(), aAbs.Tab())) { - String aStr = pDoc->GetString(rRef.nCol, rRef.nRow, rRef.nTab); + String aStr = pDoc->GetString(aAbs); EnQuote( aStr ); rBuffer.append(aStr); } @@ -5111,16 +5111,16 @@ void ScCompiler::fillAddInToken(::std::vector< ::com::sun::star::sheet::FormulaO bool ScCompiler::HandleSingleRef() { ScSingleRefData& rRef = static_cast<ScToken*>(mpToken.get())->GetSingleRef(); - rRef.CalcAbsIfRel( aPos ); - if ( !rRef.Valid() ) + ScAddress aAbs = rRef.toAbs(aPos); + if (!ValidAddress(aAbs)) { SetError( errNoRef ); return true; } - SCCOL nCol = rRef.nCol; - SCROW nRow = rRef.nRow; - SCTAB nTab = rRef.nTab; - ScAddress aLook( nCol, nRow, nTab ); + SCCOL nCol = aAbs.Col(); + SCROW nRow = aAbs.Row(); + SCTAB nTab = aAbs.Tab(); + ScAddress aLook = aAbs; bool bColName = rRef.IsColRel(); SCCOL nMyCol = aPos.Col(); SCROW nMyRow = aPos.Row(); diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx index 6595881..0d3ff6b 100644 --- a/sc/source/core/tool/token.cxx +++ b/sc/source/core/tool/token.cxx @@ -1890,40 +1890,34 @@ bool ScTokenArray::GetAdjacentExtendOfOuterFuncRefs( SCCOLROW& nExtend, case svSingleRef : { ScSingleRefData& rRef = static_cast<ScToken*>(p)->GetSingleRef(); - rRef.CalcAbsIfRel( rPos ); + ScAddress aAbs = rRef.toAbs(rPos); switch ( eDir ) { case DIR_BOTTOM : - if ( rRef.nRow == nRow - && rRef.nRow > nExtend ) + if (aAbs.Row() == nRow && aAbs.Row() > nExtend) { - nExtend = rRef.nRow; + nExtend = aAbs.Row(); bRet = true; } break; case DIR_RIGHT : - if ( rRef.nCol == nCol - && static_cast<SCCOLROW>(rRef.nCol) - > nExtend ) + if (aAbs.Col() == nCol && static_cast<SCCOLROW>(aAbs.Col()) > nExtend) { - nExtend = rRef.nCol; + nExtend = aAbs.Col(); bRet = true; } break; case DIR_TOP : - if ( rRef.nRow == nRow - && rRef.nRow < nExtend ) + if (aAbs.Row() == nRow && aAbs.Row() < nExtend) { - nExtend = rRef.nRow; + nExtend = aAbs.Row(); bRet = true; } break; case DIR_LEFT : - if ( rRef.nCol == nCol - && static_cast<SCCOLROW>(rRef.nCol) - < nExtend ) + if (aAbs.Col() == nCol && static_cast<SCCOLROW>(aAbs.Col()) < nExtend) { - nExtend = rRef.nCol; + nExtend = aAbs.Col(); bRet = true; } break; @@ -1933,40 +1927,34 @@ bool ScTokenArray::GetAdjacentExtendOfOuterFuncRefs( SCCOLROW& nExtend, case svDoubleRef : { ScComplexRefData& rRef = static_cast<ScToken*>(p)->GetDoubleRef(); - rRef.CalcAbsIfRel( rPos ); + ScRange aAbs = rRef.toAbs(rPos); switch ( eDir ) { case DIR_BOTTOM : - if ( rRef.Ref1.nRow == nRow - && rRef.Ref2.nRow > nExtend ) + if (aAbs.aStart.Row() == nRow && aAbs.aEnd.Row() > nExtend) { - nExtend = rRef.Ref2.nRow; + nExtend = aAbs.aEnd.Row(); bRet = true; } break; case DIR_RIGHT : - if ( rRef.Ref1.nCol == nCol && - static_cast<SCCOLROW>(rRef.Ref2.nCol) - > nExtend ) + if (aAbs.aStart.Col() == nCol && static_cast<SCCOLROW>(aAbs.aEnd.Col()) > nExtend) { - nExtend = rRef.Ref2.nCol; + nExtend = aAbs.aEnd.Col(); bRet = true; } break; case DIR_TOP : - if ( rRef.Ref2.nRow == nRow - && rRef.Ref1.nRow < nExtend ) + if (aAbs.aEnd.Row() == nRow && aAbs.aStart.Row() < nExtend) { - nExtend = rRef.Ref1.nRow; + nExtend = aAbs.aStart.Row(); bRet = true; } break; case DIR_LEFT : - if ( rRef.Ref2.nCol == nCol && - static_cast<SCCOLROW>(rRef.Ref1.nCol) - < nExtend ) + if (aAbs.aEnd.Col() == nCol && static_cast<SCCOLROW>(aAbs.aStart.Col()) < nExtend) { - nExtend = rRef.Ref1.nCol; + nExtend = aAbs.aStart.Col(); bRet = true; } break; @@ -2000,8 +1988,8 @@ void ScTokenArray::ReadjustRelative3DReferences( const ScAddress& rOldPos, // Also adjust if the reference is of the form Sheet1.A2:A3 if ( rRef2.IsFlag3D() || static_cast<ScToken*>(pCode[j])->GetSingleRef().IsFlag3D() ) { - rRef2.CalcAbsIfRel( rOldPos ); - rRef2.CalcRelFromAbs( rNewPos ); + ScAddress aAbs = rRef2.toAbs(rOldPos); + rRef2.SetAddress(aAbs, rNewPos); } } //! fallthru @@ -2010,8 +1998,8 @@ void ScTokenArray::ReadjustRelative3DReferences( const ScAddress& rOldPos, ScSingleRefData& rRef1 = static_cast<ScToken*>(pCode[j])->GetSingleRef(); if ( rRef1.IsFlag3D() ) { - rRef1.CalcAbsIfRel( rOldPos ); - rRef1.CalcRelFromAbs( rNewPos ); + ScAddress aAbs = rRef1.toAbs(rOldPos); + rRef1.SetAddress(aAbs, rNewPos); } } break; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits