[Libreoffice-commits] core.git: sc/source

Julien Nabet serval2412 at yahoo.fr
Mon Sep 30 03:13:02 PDT 2013


 sc/source/core/opencl/formulagroupcl.cxx |   12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

New commits:
commit ace1c780cdf2e3e49b84199d59a5e565efbb96f4
Author: Julien Nabet <serval2412 at yahoo.fr>
Date:   Fri Sep 27 22:31:42 2013 +0200

    n realloc -> 1 malloc + n same assignments -> 1 only
    
    Change-Id: Ib65fabfb7445c8548845f89e5fa957a412b4222f
    Reviewed-on: https://gerrit.libreoffice.org/6063
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx
index 929177f..5d7d7fa 100644
--- a/sc/source/core/opencl/formulagroupcl.cxx
+++ b/sc/source/core/opencl/formulagroupcl.cxx
@@ -785,15 +785,14 @@ bool FormulaGroupInterpreterOpenCL::interpret( ScDocument& rDoc, const ScAddress
                     uint rArraysSize = rArrays.size();
                     int nMoreColSize = 0;
                     DoubleVectorFormula *SvDoubleTemp = new DoubleVectorFormula();
+                    nSrcDataSize = pDvr->GetArrayLength();
                     if( rArraysSize > 1 )
                     {
-                        double *dpMoreColData = NULL;
+                        double *dpMoreColData = (double *) malloc(nSrcDataSize * rArraysSize * sizeof(double));
                         for ( uint loop=0; loop < rArraysSize; loop++ )
                         {
                             dpOclSrcData = rArrays[loop].mpNumericArray;
-                            nSrcDataSize = pDvr->GetArrayLength();
                             nMoreColSize += nSrcDataSize;
-                            dpMoreColData = (double *) realloc(dpMoreColData,nMoreColSize * sizeof(double));
                             for ( uint j = nMoreColSize - nSrcDataSize, i = 0; i < nSrcDataSize; i++, j++ )
                             {
                                 dpMoreColData[j] = dpOclSrcData[i];
@@ -805,7 +804,6 @@ bool FormulaGroupInterpreterOpenCL::interpret( ScDocument& rDoc, const ScAddress
                     else
                     {
                         dpOclSrcData = rArrays[0].mpNumericArray;
-                        nSrcDataSize = pDvr->GetArrayLength();
                         SvDoubleTemp->mdpInputData = dpOclSrcData;
                         SvDoubleTemp->mnInputDataSize = nSrcDataSize;
                         SvDoubleTemp->mnInputStartPosition = mnpOclStartPos[nCountNum*mnRowSize];
@@ -876,15 +874,14 @@ bool FormulaGroupInterpreterOpenCL::interpret( ScDocument& rDoc, const ScAddress
                     const std::vector<formula::VectorRefArray>& rArrays = pDvr->GetArrays();
                     unsigned int rArraysSize = rArrays.size();
                     int nMoreColSize = 0;
+                    nSrcDataSize = pDvr->GetArrayLength();
                     if(rArraysSize > 1)
                     {
-                        double *dpMoreColData = NULL;
+                        double *dpMoreColData = (double *) malloc(nSrcDataSize * rArraysSize * sizeof(double));
                         for( uint loop=0; loop < rArraysSize; loop++ )
                         {
                             dpOclSrcData = rArrays[loop].mpNumericArray;
-                            nSrcDataSize = pDvr->GetArrayLength();
                             nMoreColSize += nSrcDataSize;
-                            dpMoreColData = (double *) realloc(dpMoreColData,nMoreColSize * sizeof(double));
                             for(uint j=nMoreColSize-nSrcDataSize,i=0;i<nSrcDataSize;i++,j++)
                             {
                                 dpMoreColData[j] = dpOclSrcData[i];
@@ -897,7 +894,6 @@ bool FormulaGroupInterpreterOpenCL::interpret( ScDocument& rDoc, const ScAddress
                     else
                     {
                         dpOclSrcData = rArrays[0].mpNumericArray;
-                        nSrcDataSize = pDvr->GetArrayLength();
                     }
                     srdDataPush( new SourceData( dpOclSrcData,nSrcDataSize,rArraysSize ) );
                 }


More information about the Libreoffice-commits mailing list