[Libreoffice-commits] core.git: Branch 'feature/formula-core-rework' - sc/source

Kohei Yoshida kohei.yoshida at gmail.com
Mon Mar 25 08:12:09 PDT 2013


 sc/source/core/tool/compiler.cxx |   41 ++++++++++++---------------------------
 1 file changed, 13 insertions(+), 28 deletions(-)

New commits:
commit dbca299c12f8ddb2e77afa383afc9feea6bea1a3
Author: Kohei Yoshida <kohei.yoshida at gmail.com>
Date:   Mon Mar 25 11:14:21 2013 -0400

    Another one...
    
    Change-Id: Id2ee7d959cd374ce45a36dbd8d8dc8e4e46f9c83

diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index 2aad01a..5bb14c8 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -3154,41 +3154,26 @@ bool ScCompiler::IsColRowName( const String& rName )
         else
         {
             ScCellIterator aIter( pDoc, ScRange( aOne, aTwo ) );
-            for ( ScBaseCell* pCell = aIter.GetFirst(); pCell; pCell = aIter.GetNext() )
+            for (bool bHas = aIter.first(); bHas; bHas = aIter.next())
             {
                 if ( bFound )
                 {   // stop if everything else is further away
                     if ( nMax < (long)aIter.GetPos().Col() )
                         break;      // aIter
                 }
-                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 ) )
                     {
                         SCCOL nCol = aIter.GetPos().Col();


More information about the Libreoffice-commits mailing list