From 1a74c58bea4619de03bec6fa1fe00b51dd8e7d73 Mon Sep 17 00:00:00 2001 From: Kohei Yoshida Date: Fri, 12 Jul 2013 11:09:38 -0400 Subject: [PATCH] Set an array of doubles in one step, rather than individually in loops. The latter is massively slow, apparently. Change-Id: I689643330e1b04eff7d9665de5d6e423906517e1 --- sc/source/core/tool/formulagroup.cxx | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/sc/source/core/tool/formulagroup.cxx b/sc/source/core/tool/formulagroup.cxx index 5a2351198310..6573d1544405 100644 --- a/sc/source/core/tool/formulagroup.cxx +++ b/sc/source/core/tool/formulagroup.cxx @@ -73,14 +73,8 @@ bool FormulaGroupInterpreterSoftware::interpret(ScDocument& rDoc, const ScAddres for (size_t nCol = 0; nCol < nColSize; ++nCol) { const double* pArray = rArrays[nCol]; - for (size_t nRow = 0; nRow < nRowSize; ++nRow) - { - if (nRowStart + nRow < p2->GetArrayLength()) - { - double fVal = pArray[nRowStart+nRow]; - pMat->PutDouble(fVal, nCol, nRow); - } - } + pArray += nRowStart; + pMat->PutDouble(pArray, nRowSize, nCol, 0); } ScMatrixToken aTok(pMat);