summaryrefslogtreecommitdiff
path: root/formula
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2014-06-13 10:50:27 +0200
committerEike Rathke <erack@redhat.com>2014-06-13 14:21:34 +0200
commitc9d037e5e8e5850e9c69372580e7a506b573fc2a (patch)
treecf780f6dfdcf4111547e485cf1596f6dfe1ebe90 /formula
parente2ae9f3e8cb625cd8a1f6c93b665a06672038fb6 (diff)
resolved fdo#79957 propagate ForceArray through jump tokens
ForceArray parameters weren't propagated and enforced to array arguments on svJump tokens (FormulaJumpToken), namely IF, CHOOSE, IFERROR and IFNA. Change-Id: Icf9074f11b826655a52858d778d9a0122d207aa4
Diffstat (limited to 'formula')
-rw-r--r--formula/source/core/api/token.cxx7
1 files changed, 6 insertions, 1 deletions
diff --git a/formula/source/core/api/token.cxx b/formula/source/core/api/token.cxx
index 8da6dcebb255..0dd8d5c4d628 100644
--- a/formula/source/core/api/token.cxx
+++ b/formula/source/core/api/token.cxx
@@ -287,11 +287,16 @@ bool FormulaFAPToken::operator==( const FormulaToken& r ) const
{
return FormulaByteToken::operator==( r ) && pOrigToken == r.GetFAPOrigToken();
}
+
+
short* FormulaJumpToken::GetJump() const { return pJump; }
+bool FormulaJumpToken::HasForceArray() const { return bHasForceArray; }
+void FormulaJumpToken::SetForceArray( bool b ) { bHasForceArray = b; }
bool FormulaJumpToken::operator==( const FormulaToken& r ) const
{
return FormulaToken::operator==( r ) && pJump[0] == r.GetJump()[0] &&
- memcmp( pJump+1, r.GetJump()+1, pJump[0] * sizeof(short) ) == 0;
+ memcmp( pJump+1, r.GetJump()+1, pJump[0] * sizeof(short) ) == 0 &&
+ bHasForceArray == r.HasForceArray();
}
FormulaJumpToken::~FormulaJumpToken()
{