summaryrefslogtreecommitdiff
path: root/oox/source/xls/formulaparser.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'oox/source/xls/formulaparser.cxx')
-rw-r--r--oox/source/xls/formulaparser.cxx14
1 files changed, 8 insertions, 6 deletions
diff --git a/oox/source/xls/formulaparser.cxx b/oox/source/xls/formulaparser.cxx
index d2818ff9cb1a..f0ff482e5828 100644
--- a/oox/source/xls/formulaparser.cxx
+++ b/oox/source/xls/formulaparser.cxx
@@ -233,23 +233,23 @@ const ApiToken* FormulaFinalizer::processParameters(
}
// process all parameters
- FuncInfoParamClassIterator aClassIt( *pRealFuncInfo );
+ FunctionParamInfoIterator aParamInfoIt( *pRealFuncInfo );
size_t nLastValidSize = maTokens.size();
size_t nLastValidCount = 0;
- for( size_t nParam = 0; nParam < nParamCount; ++nParam, ++aPosIt, ++aClassIt )
+ for( size_t nParam = 0; nParam < nParamCount; ++nParam, ++aPosIt, ++aParamInfoIt )
{
// add embedded Calc-only parameters
- if( aClassIt.isCalcOnlyParam() )
+ if( aParamInfoIt.isCalcOnlyParam() )
{
appendCalcOnlyParameter( *pRealFuncInfo, nParam );
- while( aClassIt.isCalcOnlyParam() ) ++aClassIt;
+ while( aParamInfoIt.isCalcOnlyParam() ) ++aParamInfoIt;
}
const ApiToken* pParamBegin = *aPosIt + 1;
const ApiToken* pParamEnd = *(aPosIt + 1);
bool bIsEmpty = isEmptyParameter( pParamBegin, pParamEnd );
- if( !aClassIt.isExcelOnlyParam() )
+ if( !aParamInfoIt.isExcelOnlyParam() )
{
// replace empty second and third parameter in IF function with zeros
if( (pRealFuncInfo->mnOobFuncId == OOBIN_FUNC_IF) && ((nParam == 1) || (nParam == 2)) && bIsEmpty )
@@ -279,7 +279,7 @@ const ApiToken* FormulaFinalizer::processParameters(
maTokens.resize( nLastValidSize );
// add trailing Calc-only parameters
- if( aClassIt.isCalcOnlyParam() )
+ if( aParamInfoIt.isCalcOnlyParam() )
appendCalcOnlyParameter( *pRealFuncInfo, nLastValidCount );
// add optional parameters that are required in Calc
@@ -1420,6 +1420,7 @@ bool OoxFormulaParserImpl::importAttrToken( RecordInputStream& rStrm )
// equal flags in BIFF and OOBIN
switch( nType )
{
+ case 0: // sometimes, tAttrSkip tokens miss the type flag
case OOBIN_TOK_ATTR_VOLATILE:
case OOBIN_TOK_ATTR_IF:
case OOBIN_TOK_ATTR_SKIP:
@@ -2199,6 +2200,7 @@ bool BiffFormulaParserImpl::importAttrToken( BiffInputStream& rStrm )
rStrm >> nType;
switch( nType )
{
+ case 0: // sometimes, tAttrSkip tokens miss the type flag
case BIFF_TOK_ATTR_VOLATILE:
case BIFF_TOK_ATTR_IF:
case BIFF_TOK_ATTR_SKIP: