summaryrefslogtreecommitdiff
path: root/formula
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2014-06-13 10:50:27 +0200
committerAndras Timar <andras.timar@collabora.com>2014-06-18 14:33:57 +0200
commit5c99b24143d094cbde671b9f593ee7945b074cfd (patch)
tree14195ee07679fe3146a27abfcf3ee0b26a12eb56 /formula
parentb7b7741627dfe0ec4374a47a59a478e64a93f10d (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. (cherry picked from commit c9d037e5e8e5850e9c69372580e7a506b573fc2a) Conflicts: include/formula/token.hxx Change-Id: Icf9074f11b826655a52858d778d9a0122d207aa4 Reviewed-on: https://gerrit.libreoffice.org/9767 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
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 3777d094ade2..e933a342d478 100644
--- a/formula/source/core/api/token.cxx
+++ b/formula/source/core/api/token.cxx
@@ -275,11 +275,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()
{