summaryrefslogtreecommitdiff
path: root/sc/source/filter/excel/xeformula.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/filter/excel/xeformula.cxx')
-rw-r--r--sc/source/filter/excel/xeformula.cxx13
1 files changed, 9 insertions, 4 deletions
diff --git a/sc/source/filter/excel/xeformula.cxx b/sc/source/filter/excel/xeformula.cxx
index ef15b16030cf..849ac080bb1d 100644
--- a/sc/source/filter/excel/xeformula.cxx
+++ b/sc/source/filter/excel/xeformula.cxx
@@ -2170,10 +2170,15 @@ void XclExpFmlaCompImpl::PushOperatorPos( sal_uInt16 nTokPos, const XclExpOperan
sal_uInt16 XclExpFmlaCompImpl::PopOperandPos()
{
- DBG_ASSERT( !mxData->maOpPosStack.empty(), "XclExpFmlaCompImpl::PopOperandPos - token stack broken" );
- sal_uInt16 nTokPos = mxData->maOpPosStack.back();
- mxData->maOpPosStack.pop_back();
- return nTokPos;
+ DBG_ASSERT( !mxData->mbOk || !mxData->maOpPosStack.empty(), "XclExpFmlaCompImpl::PopOperandPos - token stack broken" );
+ mxData->mbOk &= !mxData->maOpPosStack.empty();
+ if( mxData->mbOk )
+ {
+ sal_uInt16 nTokPos = mxData->maOpPosStack.back();
+ mxData->maOpPosStack.pop_back();
+ return nTokPos;
+ }
+ return 0;
}
namespace {