[Libreoffice-commits] core.git: sc/source

Eike Rathke erack at redhat.com
Thu Dec 21 00:11:17 UTC 2017


 sc/source/core/tool/token.cxx |   33 +++++++++++++++++++++++++++++++--
 1 file changed, 31 insertions(+), 2 deletions(-)

New commits:
commit b366adcf5aca8bb22ccd0dd270ab08e9c8976b5b
Author: Eike Rathke <erack at redhat.com>
Date:   Wed Dec 20 21:32:55 2017 +0100

    Invert logic, include only known good, tdf#114251 related
    
    Change-Id: Ic362ad6c35f7f6374fc262029251e48e4f82d778
    Reviewed-on: https://gerrit.libreoffice.org/46863
    Reviewed-by: Eike Rathke <erack at redhat.com>
    Tested-by: Jenkins <ci at libreoffice.org>

diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx
index bb7ecc9650a9..6979ed459bb7 100644
--- a/sc/source/core/tool/token.cxx
+++ b/sc/source/core/tool/token.cxx
@@ -1670,11 +1670,18 @@ void ScTokenArray::CheckToken( const FormulaToken& r )
         // All the rest, special commands, separators, error codes, ...
         switch (eOp)
         {
+            default:
+                // Default is off, no vectorization.
+                // Mentioning some specific values below to indicate why.
+
             case ocName:
                 // Named expression would need "recursive" handling of its
                 // token array for vector state in
                 // ScFormulaCell::InterpretFormulaGroup() and below.
 
+            case ocDBArea:
+                // Certainly not a vectorization of the entire area..
+
             case ocTableRef:
                 // May result in a single cell or range reference, depending on
                 // context.
@@ -1692,8 +1699,30 @@ void ScTokenArray::CheckToken( const FormulaToken& r )
                 mbOpenCLEnabled = false;
                 CheckForThreading(eOp);
             break;
-            default:
-                ;   // nothing
+
+            // Known good, don't change state.
+            case ocStop:
+            case ocExternal:
+            case ocOpen:
+            case ocClose:
+            case ocSep:
+            case ocArrayOpen:
+            case ocArrayRowSep:
+            case ocArrayColSep:
+            case ocArrayClose:
+            case ocMissing:
+            case ocBad:
+            case ocSpaces:
+            case ocSkip:
+            case ocPercentSign:
+            case ocErrNull:
+            case ocErrDivZero:
+            case ocErrValue:
+            case ocErrRef:
+            case ocErrName:
+            case ocErrNum:
+            case ocErrNA:
+            break;
         }
     }
 }


More information about the Libreoffice-commits mailing list