[Libreoffice-commits] core.git: sc/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Mon Jul 23 13:19:40 UTC 2018
sc/source/core/tool/compiler.cxx | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
New commits:
commit 0549b5dded97cd6b315531baf50a874f5bb53155
Author: Eike Rathke <erack at redhat.com>
AuthorDate: Mon Jul 23 15:16:18 2018 +0200
Commit: Eike Rathke <erack at redhat.com>
CommitDate: Mon Jul 23 15:18:18 2018 +0200
HandleIIOpCode: testing for ForceArray is not sufficient
There are also other "force to array" context modes in which a
range reference does not result in an implicit intersection.
Change-Id: I3f4d85f73ecde5bbf9f011deeac2936d5f43949b
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index cab029d5e78b..b7e62c52e3df 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -5844,9 +5844,18 @@ void ScCompiler::HandleIIOpCode(OpCode nOpCode, formula::ParamClass eClass, Form
if (nNumParams != 1)
return;
- if (eClass == formula::ForceArray || mbMatrixFlag)
+ // NOTE: eClass is the CurrentFactor token's GetInForceArray() state,
+ // not the function's parameter classification.
+ if (mbMatrixFlag ||
+ eClass == formula::ForceArray ||
+ eClass == formula::ReferenceOrForceArray ||
+ eClass == formula::SuppressedReferenceOrForceArray)
return;
+ /* TODO: this assumes that there is no function taking a single
+ * parameter that does evaluate a range reference. There currently
+ * isn't any, but we should rather check that. */
+
if ((*pppToken[0])->GetType() != svDoubleRef)
return;
More information about the Libreoffice-commits
mailing list