summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2017-05-09 22:13:35 +0200
committerEike Rathke <erack@redhat.com>2017-05-10 00:39:58 +0200
commitf39e1b1079b04c8d14d3fa4a00d2cf519dba05a5 (patch)
tree531bad639e8f1f260b6fdc429e52dde81b87cd45
parent031bf555256f8f827b4f32124f88c4012d28dcd3 (diff)
Change IsForceArrayParameter() to GetForceArrayParameter(), tdf#107724 prep
Change-Id: Icd3400e4ee1c69860908a2ad0ca6e52879f2f725
-rw-r--r--formula/source/core/api/FormulaCompiler.cxx14
-rw-r--r--include/formula/FormulaCompiler.hxx8
-rw-r--r--sc/inc/compiler.hxx2
-rw-r--r--sc/source/core/tool/compiler.cxx7
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: */