sc/source/core/tool/scmatrix.cxx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
New commits: commit 87404d2671e78225aa91ead79ebf7191f6317a16 Author: Kohei Yoshida <kohei.yosh...@gmail.com> Date: Fri Jul 20 23:31:06 2012 -0400 It's much faster to pass value array in one go than individually. Change-Id: Iaf58915ab5c56ef5707f3a90a308c8b57cdc4fe9 diff --git a/sc/source/core/tool/scmatrix.cxx b/sc/source/core/tool/scmatrix.cxx index d0d3fce..ccf786c 100644 --- a/sc/source/core/tool/scmatrix.cxx +++ b/sc/source/core/tool/scmatrix.cxx @@ -38,6 +38,8 @@ #include <math.h> +#include <vector> + #include <mdds/multi_type_matrix.hpp> #include <mdds/multi_type_vector_types.hpp> #include <mdds/multi_type_vector_trait.hpp> @@ -856,9 +858,12 @@ void ScMatrixImpl::FillDouble( double fVal, SCSIZE nC1, SCSIZE nR1, SCSIZE nC2, { if (ValidColRow( nC1, nR1) && ValidColRow( nC2, nR2)) { - for (SCSIZE i = nR1; i <= nR2; ++i) - for (SCSIZE j = nC1; j <= nC2; ++j) - maMat.set(i, j, fVal); + for (SCSIZE j = nC1; j <= nC2; ++j) + { + // Passing value array is much faster. + std::vector<double> aVals(nR2-nR1+1, fVal); + maMat.set(nR1, j, aVals.begin(), aVals.end()); + } } else { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits