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

Eike Rathke erack at redhat.com
Fri May 20 13:07:53 UTC 2016


 sc/source/core/tool/interpr1.cxx |   26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

New commits:
commit 365c4d8c60e89fd57a91f51ca51a8796fe91edd7
Author: Eike Rathke <erack at redhat.com>
Date:   Fri May 20 15:06:35 2016 +0200

    handle svExternalDoubleRef in all IS*() functions, tdf#93101 related
    
    Change-Id: I48813de703ea926b8828f4e262393f7643216989

diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index 9a192ee..8c9484b 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -1893,9 +1893,10 @@ bool ScInterpreter::IsString()
                 bRes = true;
         }
         break;
+        case svExternalDoubleRef:
         case svMatrix:
         {
-            ScMatrixRef pMat = PopMatrix();
+            ScMatrixRef pMat = GetMatrix();
             if ( !pMat )
                 ;   // nothing
             else if ( !pJumpMatrix )
@@ -2476,6 +2477,14 @@ void ScInterpreter::ScIsRef()
                 bRes = true;
         }
         break;
+        case svExternalDoubleRef:
+        {
+            ScExternalRefCache::TokenArrayRef pArray;
+            PopExternalDoubleRef(pArray);
+            if (!nGlobalError)
+                bRes = true;
+        }
+        break;
         default:
             Pop();
     }
@@ -2525,9 +2534,10 @@ void ScInterpreter::ScIsValue()
                 bRes = true;
         }
         break;
+        case svExternalDoubleRef:
         case svMatrix:
         {
-            ScMatrixRef pMat = PopMatrix();
+            ScMatrixRef pMat = GetMatrix();
             if ( !pMat )
                 ;   // nothing
             else if ( !pJumpMatrix )
@@ -2684,9 +2694,10 @@ void ScInterpreter::ScIsNV()
                 bRes = true;
         }
         break;
+        case svExternalDoubleRef:
         case svMatrix:
         {
-            ScMatrixRef pMat = PopMatrix();
+            ScMatrixRef pMat = GetMatrix();
             if ( !pMat )
                 ;   // nothing
             else if ( !pJumpMatrix )
@@ -2740,9 +2751,10 @@ void ScInterpreter::ScIsErr()
                 bRes = true;
         }
         break;
+        case svExternalDoubleRef:
         case svMatrix:
         {
-            ScMatrixRef pMat = PopMatrix();
+            ScMatrixRef pMat = GetMatrix();
             if ( nGlobalError || !pMat )
                 bRes = ((nGlobalError && nGlobalError != NOTAVAILABLE) || !pMat);
             else if ( !pJumpMatrix )
@@ -2804,9 +2816,10 @@ void ScInterpreter::ScIsError()
                 bRes = true;
         }
         break;
+        case svExternalDoubleRef:
         case svMatrix:
         {
-            ScMatrixRef pMat = PopMatrix();
+            ScMatrixRef pMat = GetMatrix();
             if ( nGlobalError || !pMat )
                 bRes = true;
             else if ( !pJumpMatrix )
@@ -2886,9 +2899,10 @@ bool ScInterpreter::IsEven()
             }
         }
         break;
+        case svExternalDoubleRef:
         case svMatrix:
         {
-            ScMatrixRef pMat = PopMatrix();
+            ScMatrixRef pMat = GetMatrix();
             if ( !pMat )
                 ;   // nothing
             else if ( !pJumpMatrix )


More information about the Libreoffice-commits mailing list