[Libreoffice-commits] core.git: Branch 'libreoffice-5-0' - sc/source

Eike Rathke erack at redhat.com
Mon Nov 2 03:43:40 PST 2015


 sc/source/core/tool/interpr4.cxx |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

New commits:
commit 956782b87d1c4a59159f9ec485f80909c19b397e
Author: Eike Rathke <erack at redhat.com>
Date:   Wed Oct 28 22:30:24 2015 +0100

    Resolves: tdf#95395 force range reference to array only in array formula, also tdf#95419
    
    ... and not already if the function has a (ReferenceOr)ForceArray type
    parameter somewhere else in the parameter list.
    
    Regression triggered by commit 01eea7fe40c939311bf1920b6e8b4391a93c2e82
    for MATCH, HLOOKUP and VLOOKUP first parameter, but behavior already
    present since OOo for LOOKUP; FORECAST in its first parameter, PROB,
    LINEST, LOGEST and TTEST in the last two parameters.
    
    Change-Id: I4a30ea3362f86274a048b0e3f47fa12da3001a3a
    (cherry picked from commit b5cd11b4b02a85a83db77ba9d8d1763f0cd88cb1)
    Reviewed-on: https://gerrit.libreoffice.org/19659
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Norbert Thiebaud <nthiebaud at gmail.com>

diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index 43a22c9..4327d61 100644
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -1399,7 +1399,13 @@ bool ScInterpreter::ConvertMatrixParameters()
                     ScParameterClassification::Type eType =
                         ScParameterClassification::GetParameterType( pCur, nParams - i);
                     if ( eType != ScParameterClassification::Reference &&
-                            eType != ScParameterClassification::ReferenceOrForceArray)
+                            eType != ScParameterClassification::ReferenceOrForceArray &&
+                            // For scalar Value: convert to Array/JumpMatrix
+                            // only if in array formula context, else (function
+                            // has ForceArray or ReferenceOrForceArray
+                            // parameter *somewhere else*) pick a normal
+                            // position dependent implicit intersection later.
+                            (eType != ScParameterClassification::Value || bMatrixFormula))
                     {
                         SCCOL nCol1, nCol2;
                         SCROW nRow1, nRow2;


More information about the Libreoffice-commits mailing list