diff options
author | Eike Rathke <erack@redhat.com> | 2017-05-09 22:13:35 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2017-05-10 00:39:58 +0200 |
commit | f39e1b1079b04c8d14d3fa4a00d2cf519dba05a5 (patch) | |
tree | 531bad639e8f1f260b6fdc429e52dde81b87cd45 | |
parent | 031bf555256f8f827b4f32124f88c4012d28dcd3 (diff) |
Change IsForceArrayParameter() to GetForceArrayParameter(), tdf#107724 prep
Change-Id: Icd3400e4ee1c69860908a2ad0ca6e52879f2f725
-rw-r--r-- | formula/source/core/api/FormulaCompiler.cxx | 14 | ||||
-rw-r--r-- | include/formula/FormulaCompiler.hxx | 8 | ||||
-rw-r--r-- | sc/inc/compiler.hxx | 2 | ||||
-rw-r--r-- | sc/source/core/tool/compiler.cxx | 7 |
4 files changed, 17 insertions, 14 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 ) diff --git a/include/formula/FormulaCompiler.hxx b/include/formula/FormulaCompiler.hxx index 22bd699e7811..8e4999ffc999 100644 --- a/include/formula/FormulaCompiler.hxx +++ b/include/formula/FormulaCompiler.hxx @@ -30,6 +30,7 @@ #include <formula/opcode.hxx> #include <formula/token.hxx> #include <formula/types.hxx> +#include <formula/paramclass.hxx> #include <rtl/ustrbuf.hxx> #include <rtl/ustring.hxx> #include <sal/log.hxx> @@ -292,9 +293,10 @@ protected: virtual void CreateStringFromIndex( OUStringBuffer& rBuffer, const FormulaToken* pToken ) const; virtual void LocalizeString( OUString& rName ) const; // modify rName - input: exact name - /** Whether parameter nParam (0-based) is forced to array for OpCode eOp. - Calc: ForceArray or ReferenceOrForceArray type. */ - virtual bool IsForceArrayParameter( const FormulaToken* pToken, sal_uInt16 nParam ) const; + /** If a parameter nParam (0-based) is to be forced to array for OpCode + eOp, i.e. classified as ParamClass::ForceArray or + ParamClass::ReferenceOrForceArray type. */ + virtual formula::ParamClass GetForceArrayParameter( const FormulaToken* pToken, sal_uInt16 nParam ) const; void AppendErrorConstant( OUStringBuffer& rBuffer, FormulaError nError ) const; diff --git a/sc/inc/compiler.hxx b/sc/inc/compiler.hxx index 0aa34f5b8dd8..30a064da457a 100644 --- a/sc/inc/compiler.hxx +++ b/sc/inc/compiler.hxx @@ -460,7 +460,7 @@ private: virtual void CreateStringFromIndex( OUStringBuffer& rBuffer, const formula::FormulaToken* pToken ) const override; virtual void LocalizeString( OUString& rName ) const override; // modify rName - input: exact name - virtual bool IsForceArrayParameter( const formula::FormulaToken* pToken, sal_uInt16 nParam ) const override; + virtual formula::ParamClass GetForceArrayParameter( const formula::FormulaToken* pToken, sal_uInt16 nParam ) const override; /// Access the CharTable flags ScCharFlags GetCharTableFlags( sal_Unicode c, sal_Unicode cLast ) diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx index af159268ae49..a95f2da5698c 100644 --- a/sc/source/core/tool/compiler.cxx +++ b/sc/source/core/tool/compiler.cxx @@ -5763,12 +5763,9 @@ bool ScCompiler::HandleTableRef() return true; } -bool ScCompiler::IsForceArrayParameter( const formula::FormulaToken* pToken, sal_uInt16 nParam ) const +formula::ParamClass ScCompiler::GetForceArrayParameter( const formula::FormulaToken* pToken, sal_uInt16 nParam ) const { - formula::ParamClass eType = ScParameterClassification::GetParameterType( pToken, nParam); - return - eType == formula::ParamClass::ForceArray || - eType == formula::ParamClass::ReferenceOrForceArray; + return ScParameterClassification::GetParameterType( pToken, nParam); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |