summaryrefslogtreecommitdiff
path: root/formula
diff options
context:
space:
mode:
Diffstat (limited to 'formula')
-rw-r--r--formula/source/core/api/FormulaCompiler.cxx14
1 files changed, 9 insertions, 5 deletions
diff --git a/formula/source/core/api/FormulaCompiler.cxx b/formula/source/core/api/FormulaCompiler.cxx
index 767f4da86a7a..039b41a0d3ea 100644
--- a/formula/source/core/api/FormulaCompiler.cxx
+++ b/formula/source/core/api/FormulaCompiler.cxx
@@ -2539,9 +2539,9 @@ void FormulaCompiler::LocalizeString( OUString& /*rName*/ ) const
{
}
-bool FormulaCompiler::IsForceArrayParameter( const FormulaToken* /*pToken*/, sal_uInt16 /*nParam*/ ) const
+formula::ParamClass FormulaCompiler::GetForceArrayParameter( const FormulaToken* /*pToken*/, sal_uInt16 /*nParam*/ ) const
{
- return false;
+ return ParamClass::Unknown;
}
void FormulaCompiler::ForceArrayOperator( FormulaTokenRef& rCurr )
@@ -2558,9 +2558,13 @@ void FormulaCompiler::ForceArrayOperator( FormulaTokenRef& rCurr )
return;
}
- if (nCurrentFactorParam && IsForceArrayParameter( pCurrentFactorToken.get(),
- static_cast<sal_uInt8>(nCurrentFactorParam - 1)))
- rCurr->SetInForceArray( true);
+ if (nCurrentFactorParam > 0)
+ {
+ formula::ParamClass eType = GetForceArrayParameter( pCurrentFactorToken.get(),
+ static_cast<sal_uInt8>(nCurrentFactorParam - 1));
+ if (eType == ParamClass::ForceArray || eType == ParamClass::ReferenceOrForceArray)
+ rCurr->SetInForceArray( true);
+ }
}
void FormulaCompiler::CheckSetForceArrayParameter( FormulaTokenRef& rCurr, sal_uInt8 nParam )