diff options
author | Eike Rathke <erack@redhat.com> | 2014-06-13 10:50:27 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2014-06-18 14:33:57 +0200 |
commit | 5c99b24143d094cbde671b9f593ee7945b074cfd (patch) | |
tree | 14195ee07679fe3146a27abfcf3ee0b26a12eb56 /formula | |
parent | b7b7741627dfe0ec4374a47a59a478e64a93f10d (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.cxx | 7 |
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() { |