[Libreoffice-commits] core.git: Branch 'libreoffice-4-1' - sc/source
Kohei Yoshida
kohei.yoshida at collabora.com
Fri Apr 25 05:58:49 PDT 2014
sc/source/core/tool/interpr1.cxx | 1 +
sc/source/core/tool/scmatrix.cxx | 14 ++++++++++----
2 files changed, 11 insertions(+), 4 deletions(-)
New commits:
commit b3d3c64a83c510a5c9aacf517eee8ca697e21d8f
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Thu Apr 24 12:26:01 2014 -0400
fdo#76663: Let's not skip the first element of a matrix in PRODUCT.
(cherry picked from commit 4158d8843d50d50e9830c8dc24af8722de77f4af)
Conflicts:
sc/source/core/tool/interpr6.cxx
Backported.
Change-Id: I00683ce64fea58a80cd7137384e8f30464c44e9f
Reviewed-on: https://gerrit.libreoffice.org/9159
Reviewed-by: Eike Rathke <erack at redhat.com>
Tested-by: Eike Rathke <erack at redhat.com>
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index a03b13a..fd684ee 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -3946,6 +3946,7 @@ void IterateMatrix(
case ifPRODUCT:
{
ScMatrix::IterateResult aRes = pMat->Product(bTextAsZero);
+ fRes = aRes.mfFirst;
fRes *= aRes.mfRest;
rCount += aRes.mnCount;
}
diff --git a/sc/source/core/tool/scmatrix.cxx b/sc/source/core/tool/scmatrix.cxx
index eea3a71..933e808 100644
--- a/sc/source/core/tool/scmatrix.cxx
+++ b/sc/source/core/tool/scmatrix.cxx
@@ -976,7 +976,7 @@ namespace {
struct SumOp
{
- static const int InitVal = 0;
+ static const double InitVal;
void operator() (double& rAccum, double fVal)
{
@@ -984,9 +984,11 @@ struct SumOp
}
};
+const double SumOp::InitVal = 0.0;
+
struct SumSquareOp
{
- static const int InitVal = 0;
+ static const double InitVal;
void operator() (double& rAccum, double fVal)
{
@@ -994,9 +996,11 @@ struct SumSquareOp
}
};
+const double SumSquareOp::InitVal = 0.0;
+
struct ProductOp
{
- static const int InitVal = 1;
+ static const double InitVal;
void operator() (double& rAccum, double fVal)
{
@@ -1004,6 +1008,8 @@ struct ProductOp
}
};
+const double ProductOp::InitVal = 1.0;
+
template<typename _Op>
class WalkElementBlocks : std::unary_function<MatrixImplType::element_block_node_type, void>
{
@@ -1013,7 +1019,7 @@ class WalkElementBlocks : std::unary_function<MatrixImplType::element_block_node
bool mbFirst:1;
bool mbTextAsZero:1;
public:
- WalkElementBlocks(bool bTextAsZero) : maRes(0.0, _Op::InitVal, 0), mbFirst(true), mbTextAsZero(bTextAsZero) {}
+ WalkElementBlocks(bool bTextAsZero) : maRes(_Op::InitVal, _Op::InitVal, 0), mbFirst(true), mbTextAsZero(bTextAsZero) {}
const ScMatrix::IterateResult& getResult() const { return maRes; }
More information about the Libreoffice-commits
mailing list