sc/source/core/tool/compiler.cxx | 183 ++++++++++++++++++--------------------- 1 file changed, 86 insertions(+), 97 deletions(-)
New commits: commit 50052ef0c677f9af8f89f8b671ceef5b4a378dd0 Author: Kohei Yoshida <kohei.yosh...@gmail.com> Date: Thu Jun 27 14:03:27 2013 -0400 Reduce indentation to a sane level. Change-Id: I2940ca21f8cee0d780e58cfcda50705be61568d9 diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx index 759eef2..4748aef 100644 --- a/sc/source/core/tool/compiler.cxx +++ b/sc/source/core/tool/compiler.cxx @@ -4265,126 +4265,115 @@ ScRangeData* ScCompiler::UpdateReference(UpdateRefMode eUpdateRefMode, } return pRangeData; } - else + + ScRangeData* pRangeData = NULL; + ScToken* t; + pArr->Reset(); + while( (t = static_cast<ScToken*>(pArr->GetNextReferenceOrName())) != NULL ) { - ScRangeData* pRangeData = NULL; - ScToken* t; - pArr->Reset(); - while( (t = static_cast<ScToken*>(pArr->GetNextReferenceOrName())) != NULL ) + if( t->GetOpCode() == ocName ) { - if( t->GetOpCode() == ocName ) + ScRangeData* pName = GetRangeData( *t); + if (pName && pName->HasType(RT_SHAREDMOD)) { - ScRangeData* pName = GetRangeData( *t); - if (pName && pName->HasType(RT_SHAREDMOD)) - { - pRangeData = pName; // maybe need a replacement of shared with own code - rChanged = true; - } - } - else if( t->GetType() != svIndex ) // it may be a DB area!!! - { - t->CalcAbsIfRel( rOldPos ); - switch (t->GetType()) - { - case svExternalSingleRef: - case svExternalDoubleRef: - // External references never change their positioning - // nor point to parts that will be removed or expanded. - // In fact, calling ScRefUpdate::Update() for URM_MOVE - // may have negative side effects. Simply adapt - // relative references to the new position. - t->CalcRelFromAbs( aPos); - break; - case svSingleRef: - { - if ( ScRefUpdate::Update( pDoc, eUpdateRefMode, - aPos, r, nDx, nDy, nDz, - SingleDoubleRefModifier( - t->GetSingleRef()).Ref()) - != UR_NOTHING) - rChanged = true; - } - break; - default: - { - ScComplexRefData& rRef = t->GetDoubleRef(); - SCCOL nCols = rRef.Ref2.nCol - rRef.Ref1.nCol; - SCROW nRows = rRef.Ref2.nRow - rRef.Ref1.nRow; - SCTAB nTabs = rRef.Ref2.nTab - rRef.Ref1.nTab; - if ( ScRefUpdate::Update( pDoc, eUpdateRefMode, - aPos, r, nDx, nDy, nDz, - t->GetDoubleRef()) != UR_NOTHING) - { - rChanged = true; - if (rRef.Ref2.nCol - rRef.Ref1.nCol != nCols || - rRef.Ref2.nRow - rRef.Ref1.nRow != nRows || - rRef.Ref2.nTab - rRef.Ref1.nTab != nTabs) - rRefSizeChanged = true; - } - } - } + pRangeData = pName; // maybe need a replacement of shared with own code + rChanged = true; } } - pArr->Reset(); - while ( (t = static_cast<ScToken*>(pArr->GetNextReferenceRPN())) != NULL ) + else if( t->GetType() != svIndex ) // it may be a DB area!!! { - if ( t->GetRef() != 1 ) + t->CalcAbsIfRel( rOldPos ); + switch (t->GetType()) { - } - else - { // if nRefCnt>1 it's already updated in token code - if ( t->GetType() == svSingleRef ) + case svExternalSingleRef: + case svExternalDoubleRef: + // External references never change their positioning + // nor point to parts that will be removed or expanded. + // In fact, calling ScRefUpdate::Update() for URM_MOVE + // may have negative side effects. Simply adapt + // relative references to the new position. + t->CalcRelFromAbs( aPos); + break; + case svSingleRef: { - ScSingleRefData& rRef = t->GetSingleRef(); - SingleDoubleRefModifier aMod( rRef ); - if ( rRef.IsRelName() ) - { - ScRefUpdate::MoveRelWrap( pDoc, aPos, MAXCOL, MAXROW, aMod.Ref() ); + if ( ScRefUpdate::Update( pDoc, eUpdateRefMode, + aPos, r, nDx, nDy, nDz, + SingleDoubleRefModifier( + t->GetSingleRef()).Ref()) + != UR_NOTHING) rChanged = true; - } - else - { - aMod.Ref().CalcAbsIfRel( rOldPos ); - if ( ScRefUpdate::Update( pDoc, eUpdateRefMode, aPos, - r, nDx, nDy, nDz, aMod.Ref() ) - != UR_NOTHING - ) - rChanged = true; - } } - else + break; + default: { ScComplexRefData& rRef = t->GetDoubleRef(); SCCOL nCols = rRef.Ref2.nCol - rRef.Ref1.nCol; SCROW nRows = rRef.Ref2.nRow - rRef.Ref1.nRow; SCTAB nTabs = rRef.Ref2.nTab - rRef.Ref1.nTab; - if ( rRef.Ref1.IsRelName() || rRef.Ref2.IsRelName() ) + if ( ScRefUpdate::Update( pDoc, eUpdateRefMode, + aPos, r, nDx, nDy, nDz, + t->GetDoubleRef()) != UR_NOTHING) { - ScRefUpdate::MoveRelWrap( pDoc, aPos, MAXCOL, MAXROW, rRef ); rChanged = true; - } - else - { - if ( ScRefUpdate::Update( pDoc, eUpdateRefMode, aPos, - r, nDx, nDy, nDz, rRef ) - != UR_NOTHING - ) - { - rChanged = true; - if (rRef.Ref2.nCol - rRef.Ref1.nCol != nCols || - rRef.Ref2.nRow - rRef.Ref1.nRow != nRows || - rRef.Ref2.nTab - rRef.Ref1.nTab != nTabs) - { - rRefSizeChanged = true; - } - } + if (rRef.Ref2.nCol - rRef.Ref1.nCol != nCols || + rRef.Ref2.nRow - rRef.Ref1.nRow != nRows || + rRef.Ref2.nTab - rRef.Ref1.nTab != nTabs) + rRefSizeChanged = true; } } } } + } + pArr->Reset(); + while ( (t = static_cast<ScToken*>(pArr->GetNextReferenceRPN())) != NULL ) + { + if (t->GetRef() != 1) + continue; - return pRangeData; + if ( t->GetType() == svSingleRef ) + { + ScSingleRefData& rRef = t->GetSingleRef(); + SingleDoubleRefModifier aMod( rRef ); + if ( rRef.IsRelName() ) + { + ScRefUpdate::MoveRelWrap( pDoc, aPos, MAXCOL, MAXROW, aMod.Ref() ); + rChanged = true; + } + else + { + aMod.Ref().CalcAbsIfRel( rOldPos ); + if ( ScRefUpdate::Update( pDoc, eUpdateRefMode, aPos, + r, nDx, nDy, nDz, aMod.Ref() ) + != UR_NOTHING + ) + rChanged = true; + } + } + else + { + ScComplexRefData& rRef = t->GetDoubleRef(); + SCCOL nCols = rRef.Ref2.nCol - rRef.Ref1.nCol; + SCROW nRows = rRef.Ref2.nRow - rRef.Ref1.nRow; + SCTAB nTabs = rRef.Ref2.nTab - rRef.Ref1.nTab; + if ( rRef.Ref1.IsRelName() || rRef.Ref2.IsRelName() ) + { + ScRefUpdate::MoveRelWrap( pDoc, aPos, MAXCOL, MAXROW, rRef ); + rChanged = true; + } + else if (ScRefUpdate::Update(pDoc, eUpdateRefMode, aPos, r, nDx, nDy, nDz, rRef) != UR_NOTHING) + { + rChanged = true; + if (rRef.Ref2.nCol - rRef.Ref1.nCol != nCols || + rRef.Ref2.nRow - rRef.Ref1.nRow != nRows || + rRef.Ref2.nTab - rRef.Ref1.nTab != nTabs) + { + rRefSizeChanged = true; + } + } + } } + + return pRangeData; } bool ScCompiler::UpdateNameReference(UpdateRefMode eUpdateRefMode, _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits