diff options
author | Eike Rathke <erack@redhat.com> | 2017-12-20 21:32:55 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2017-12-21 01:10:57 +0100 |
commit | b366adcf5aca8bb22ccd0dd270ab08e9c8976b5b (patch) | |
tree | 3cdb7c2909e86cb084b633053d5291b678cf3bbf /sc | |
parent | f6c2fd1ce58a8f34483177c0b240c53a7866faf9 (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>
Diffstat (limited to 'sc')
-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 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; } } } |