sc/source/core/tool/compiler.cxx | 42 ++++++++++++--------------------------- 1 file changed, 13 insertions(+), 29 deletions(-)
New commits: commit fd20a04847d9bb5581a18267e7f27b4374ea629a Author: Kohei Yoshida <kohei.yosh...@gmail.com> Date: Mon Mar 25 11:21:47 2013 -0400 This one too. Change-Id: Ie0965d1b61d32c943bde3f295e73423008f6b77b diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx index 5bb14c8..80428a4 100644 --- a/sc/source/core/tool/compiler.cxx +++ b/sc/source/core/tool/compiler.cxx @@ -3025,42 +3025,26 @@ bool ScCompiler::IsColRowName( const String& rName ) nThisTab <= rNameRange.aEnd.Tab()) ) continue; // for ScCellIterator aIter( pDoc, rNameRange ); - for ( ScBaseCell* pCell = aIter.GetFirst(); pCell && !bInList; - pCell = aIter.GetNext() ) + for (bool bHas = aIter.first(); bHas && !bInList; bHas = aIter.next()) { // Don't crash if cell (via CompileNameFormula) encounters // a formula cell without code and // HasStringData/Interpret/Compile is executed and all that // recursive.. // Furthermore, *this* cell won't be touched, since no RPN exists yet. - CellType eType = pCell->GetCellType(); - bool bOk = ( (eType == CELLTYPE_FORMULA ? - ((ScFormulaCell*)pCell)->GetCode()->GetCodeLen() > 0 - && ((ScFormulaCell*)pCell)->aPos != aPos // noIter - : true ) ); - if ( bOk && pCell->HasStringData() ) + CellType eType = aIter.getType(); + bool bOk = false; + if (eType == CELLTYPE_FORMULA) { - String aStr; - switch ( eType ) - { - case CELLTYPE_STRING: - aStr = ((ScStringCell*)pCell)->GetString(); - break; - case CELLTYPE_FORMULA: - aStr = ((ScFormulaCell*)pCell)->GetString(); - break; - case CELLTYPE_EDIT: - aStr = ((ScEditCell*)pCell)->GetString(); - break; - case CELLTYPE_NONE: - case CELLTYPE_VALUE: - case CELLTYPE_NOTE: -#if OSL_DEBUG_LEVEL > 0 - case CELLTYPE_DESTROYED: -#endif - ; // nothing, prevent compiler warning - break; - } + ScFormulaCell* pFC = aIter.getFormulaCell(); + bOk = (pFC->GetCode()->GetCodeLen() > 0) && (pFC->aPos != aPos); + } + else + bOk = true; + + if (bOk && aIter.hasString()) + { + OUString aStr = aIter.getString(); if ( ScGlobal::GetpTransliteration()->isEqual( aStr, aName ) ) { aRef.InitFlags(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits