summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2016-05-20 15:06:35 +0200
committerEike Rathke <erack@redhat.com>2016-05-20 15:06:56 +0200
commit365c4d8c60e89fd57a91f51ca51a8796fe91edd7 (patch)
tree730eba0246fadb33a6f9df025df70923c6c631f2
parentf053086fbc625fca8ba7b956738d33ba78a80f9b (diff)
handle svExternalDoubleRef in all IS*() functions, tdf#93101 related
Change-Id: I48813de703ea926b8828f4e262393f7643216989
-rw-r--r--sc/source/core/tool/interpr1.cxx26
1 files changed, 20 insertions, 6 deletions
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index 9a192eea6a2e..8c9484bdc841 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 )