diff options
author | Eike Rathke <erack@redhat.com> | 2017-12-20 21:32:55 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2017-12-22 00:12:00 +0100 |
commit | 16d75204418455c0d9dff13607432dae33a7566e (patch) | |
tree | cc9b1c3b0a4aab02e60d8d71ac1e3deba108960e | |
parent | 409f32c514a85ac735f82cbf36308c1709b569ec (diff) |
Invert logic, include only known good, tdf#114251 related
Change-Id: Ic362ad6c35f7f6374fc262029251e48e4f82d778
Reviewed-on: https://gerrit.libreoffice.org/46863
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins <ci@libreoffice.org>
(cherry picked from commit b366adcf5aca8bb22ccd0dd270ab08e9c8976b5b)
Reviewed-on: https://gerrit.libreoffice.org/46877
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
-rw-r--r-- | sc/source/core/tool/token.cxx | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx index 396c25537ffb..089ed5b5f48d 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; } } } |