summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2015-09-25 13:42:04 +0200
committerEike Rathke <erack@redhat.com>2015-09-25 13:50:50 +0200
commitc1780ad265ce5f6abb3b91a4f70bf2b3d7a47149 (patch)
tree4689d7d9d17b31eeafb34500ba63359b71587182 /sc
parent72d082a6f04283c2d50d2c19c7d8ce1805b377ac (diff)
fix IterateMatrix for ifPRODUCT and ifSUMSQ
... if more than one argument is passed to PRODUCT() or SUMSQ() and matrix/array arguments are involved the functions returned wrong results. For example, wrong behavior =PRODUCT({2,3},{4,5}) gave 6 =SUMSQ({2,3},{4,5}) gave 34 Correct is =PRODUCT({2,3},{4,5}) result 120 =SUMSQ({2,3},{4,5}) result 54 Change-Id: Iec7b136a5cc678416f28b1abfe19cd0901ef22b6
Diffstat (limited to 'sc')
-rw-r--r--sc/source/core/tool/interpr6.cxx3
1 files changed, 2 insertions, 1 deletions
diff --git a/sc/source/core/tool/interpr6.cxx b/sc/source/core/tool/interpr6.cxx
index 69a11a0abde9..c6ae7c9ad863 100644
--- a/sc/source/core/tool/interpr6.cxx
+++ b/sc/source/core/tool/interpr6.cxx
@@ -400,7 +400,7 @@ void IterateMatrix(
case ifPRODUCT:
{
ScMatrix::IterateResult aRes = pMat->Product(bTextAsZero);
- fRes = aRes.mfFirst;
+ fRes *= aRes.mfFirst;
fRes *= aRes.mfRest;
rCount += aRes.mnCount;
}
@@ -408,6 +408,7 @@ void IterateMatrix(
case ifSUMSQ:
{
ScMatrix::IterateResult aRes = pMat->SumSquare(bTextAsZero);
+ fRes += aRes.mfFirst;
fRes += aRes.mfRest;
rCount += aRes.mnCount;
}