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

Eike Rathke erack at redhat.com
Mon Apr 20 10:03:33 PDT 2015


 sc/source/core/inc/interpre.hxx  |    4 ++--
 sc/source/core/tool/interpr3.cxx |   11 ++++++-----
 2 files changed, 8 insertions(+), 7 deletions(-)

New commits:
commit 887370fe830a148f309b23011f3428d80a53811d
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Apr 20 18:50:26 2015 +0200

    only convert in svMatrix, not in external references, tdf#88547 follow-up
    
    Change-Id: I7bc03f7ff3ec57317e7fbad4476874bac6c44877

diff --git a/sc/source/core/tool/interpr3.cxx b/sc/source/core/tool/interpr3.cxx
index a397bdd..9218f53 100644
--- a/sc/source/core/tool/interpr3.cxx
+++ b/sc/source/core/tool/interpr3.cxx
@@ -3670,7 +3670,8 @@ void ScInterpreter::GetNumberSequenceArray( sal_uInt8 nParamCount, vector<double
     size_t nRefInList = 0;
     while (nParam-- > 0)
     {
-        switch (GetStackType())
+        const StackVar eStackType = GetStackType();
+        switch (eStackType)
         {
             case formula::svDouble :
                 rArray.push_back( PopDouble());
@@ -3724,7 +3725,7 @@ void ScInterpreter::GetNumberSequenceArray( sal_uInt8 nParamCount, vector<double
                     for (SCSIZE i = 0; i < nCount; ++i)
                         rArray.push_back( pMat->GetDouble(i));
                 }
-                else if (bConvertTextInArray)
+                else if (bConvertTextInArray && eStackType == svMatrix)
                 {
                     for (SCSIZE i = 0; i < nCount; ++i)
                     {
commit 46befa93818dc7dedc614a08bf0266b0723f9284
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Apr 20 18:47:00 2015 +0200

    clarify that only text in arrays is to be converted, tdf#88547 follow-up
    
    Change-Id: I7cebaf1a2907f4beb10e128ea5d479df45c1e1c5

diff --git a/sc/source/core/inc/interpre.hxx b/sc/source/core/inc/interpre.hxx
index d1d4670..19b779d 100644
--- a/sc/source/core/inc/interpre.hxx
+++ b/sc/source/core/inc/interpre.hxx
@@ -816,8 +816,8 @@ void ScMedian();
 double GetMedian( ::std::vector<double> & rArray );
 double GetPercentile( ::std::vector<double> & rArray, double fPercentile );
 double GetPercentileExclusive( ::std::vector<double> & rArray, double fPercentile );
-void GetNumberSequenceArray( sal_uInt8 nParamCount, ::std::vector<double>& rArray, bool bAllowText );
-void GetSortArray( sal_uInt8 nParamCount, ::std::vector<double>& rSortArray, ::std::vector<long>* pIndexOrder, bool bAllowText );
+void GetNumberSequenceArray( sal_uInt8 nParamCount, ::std::vector<double>& rArray, bool bConvertTextInArray );
+void GetSortArray( sal_uInt8 nParamCount, ::std::vector<double>& rSortArray, ::std::vector<long>* pIndexOrder, bool bConvertTextInArray );
 void QuickSort(::std::vector<double>& rSortArray, ::std::vector<long>* pIndexOrder = NULL);
 void ScModalValue();
 void ScModalValue_Multi();
diff --git a/sc/source/core/tool/interpr3.cxx b/sc/source/core/tool/interpr3.cxx
index 1dd07f5..a397bdd 100644
--- a/sc/source/core/tool/interpr3.cxx
+++ b/sc/source/core/tool/interpr3.cxx
@@ -3662,7 +3662,7 @@ void ScInterpreter::ScTrimMean()
     }
 }
 
-void ScInterpreter::GetNumberSequenceArray( sal_uInt8 nParamCount, vector<double>& rArray, bool bAllowText )
+void ScInterpreter::GetNumberSequenceArray( sal_uInt8 nParamCount, vector<double>& rArray, bool bConvertTextInArray )
 {
     ScAddress aAdr;
     ScRange aRange;
@@ -3724,7 +3724,7 @@ void ScInterpreter::GetNumberSequenceArray( sal_uInt8 nParamCount, vector<double
                     for (SCSIZE i = 0; i < nCount; ++i)
                         rArray.push_back( pMat->GetDouble(i));
                 }
-                else if (bAllowText)
+                else if (bConvertTextInArray)
                 {
                     for (SCSIZE i = 0; i < nCount; ++i)
                     {
@@ -3782,9 +3782,9 @@ void ScInterpreter::GetNumberSequenceArray( sal_uInt8 nParamCount, vector<double
         PopError();
 }
 
-void ScInterpreter::GetSortArray( sal_uInt8 nParamCount, vector<double>& rSortArray, vector<long>* pIndexOrder, bool bAllowText )
+void ScInterpreter::GetSortArray( sal_uInt8 nParamCount, vector<double>& rSortArray, vector<long>* pIndexOrder, bool bConvertTextInArray )
 {
-    GetNumberSequenceArray( nParamCount, rSortArray, bAllowText );
+    GetNumberSequenceArray( nParamCount, rSortArray, bConvertTextInArray );
     if (rSortArray.size() > MAX_ANZ_DOUBLE_FOR_SORT)
         SetError( errStackOverflow);
     else if (rSortArray.empty())


More information about the Libreoffice-commits mailing list