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

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed Feb 27 12:58:22 UTC 2019


 sc/source/core/tool/interpr1.cxx |   11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

New commits:
commit aa1b922c0f667d833e53b282ad9bbb78dec38502
Author:     Eike Rathke <erack at redhat.com>
AuthorDate: Tue Feb 26 23:11:34 2019 +0100
Commit:     Eike Rathke <erack at redhat.com>
CommitDate: Wed Feb 27 13:57:57 2019 +0100

    Simplify condition whether to return array of references or matrix
    
    Now that we have ParamClass::ReferenceOrRefArray and supporting
    functions use it as parameter classification and it is set at the
    called function in array/matrix context, use it as indicator when
    to return the reference list array and when to return the result
    matrix.
    
    Change-Id: I1fd6001f51530b0d1cfd61320f1cd58521c4fa40
    Reviewed-on: https://gerrit.libreoffice.org/68426
    Reviewed-by: Eike Rathke <erack at redhat.com>
    Tested-by: Jenkins

diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index a31897a0de1b..e6266550f3e6 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -837,19 +837,14 @@ bool ScInterpreter::JumpMatrix( short nStackLevel )
     {   // We're done with it, throw away jump matrix, keep result.
         // For an intermediate result of Reference use the array of references
         // if there are more than one reference and the current ForceArray
-        // context is not ForceArray or suppressed. Note that also
-        // ReferenceOrRefArray forces the array of references as result if
-        // there is more than one reference.
+        // context is ReferenceOrRefArray.
         // Else (also for a final result of Reference) use the matrix.
         // Treat the result of a jump command as final and use the matrix (see
         // tdf#115493 for why).
-        ParamClass eParamClass;
-        if (!FormulaCompiler::IsOpCodeJumpCommand( pJumpMatrix->GetOpCode()) &&
+        if (pCur->GetInForceArray() == ParamClass::ReferenceOrRefArray &&
                 pJumpMatrix->GetRefList().size() > 1 &&
                 ScParameterClassification::GetParameterType( pCur, SAL_MAX_UINT16) == ParamClass::Reference &&
-                (eParamClass = pCur->GetInForceArray()) != ParamClass::ForceArray &&
-                eParamClass != ParamClass::ReferenceOrForceArray &&
-                eParamClass != ParamClass::SuppressedReferenceOrForceArray &&
+                !FormulaCompiler::IsOpCodeJumpCommand( pJumpMatrix->GetOpCode()) &&
                 aCode.PeekNextOperator())
         {
             FormulaTokenRef xRef = new ScRefListToken(true);


More information about the Libreoffice-commits mailing list