[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - sc/source
Winfried Donkers
winfrieddonkers at libreoffice.org
Fri Jul 29 18:32:51 UTC 2016
sc/source/core/tool/interpr8.cxx | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
New commits:
commit e43e2886effea42658f4bc3b69f46cc70c9251e0
Author: Winfried Donkers <winfrieddonkers at libreoffice.org>
Date: Fri Jul 29 09:16:34 2016 +0200
tdf#97831 follow up : remove unused arguments from stack
Intention:
Make e.g. [1+SWITCH(1;1;1;6)] work. Without this fix, the result is
7 but should be 2.
Reviewed-on: https://gerrit.libreoffice.org/27664
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Eike Rathke <erack at redhat.com>
Tested-by: Eike Rathke <erack at redhat.com>
(cherry picked from commit 3ee2cae3a36e5d052e02c3f7b226dc3b79bd2ebc)
Conflicts:
sc/qa/unit/data/functions/fods/Functions_Excel_2016.fods
Change-Id: I2a72e458e5458c02c3ce2f4214b86ba13f7b1d11
Reviewed-on: https://gerrit.libreoffice.org/27697
Reviewed-by: Eike Rathke <erack at redhat.com>
Tested-by: Eike Rathke <erack at redhat.com>
Tested-by: Jenkins <ci at libreoffice.org>
diff --git a/sc/source/core/tool/interpr8.cxx b/sc/source/core/tool/interpr8.cxx
index b62fb59..972b125 100644
--- a/sc/source/core/tool/interpr8.cxx
+++ b/sc/source/core/tool/interpr8.cxx
@@ -1897,7 +1897,15 @@ void ScInterpreter::ScIfs_MS()
//push result :
FormulaTokenRef xToken( PopToken() );
if ( xToken )
+ {
+ // Remove unused arguments of IFS from the stack before pushing the result.
+ while ( nParamCount > 1 )
+ {
+ Pop();
+ nParamCount--;
+ }
PushTempToken( xToken.get() );
+ }
else
PushError( errUnknownStackVariable );
}
@@ -2000,7 +2008,15 @@ void ScInterpreter::ScSwitch_MS()
// push result
FormulaTokenRef xToken( PopToken() );
if ( xToken )
+ {
+ // Remove unused arguments of SWITCH from the stack before pushing the result.
+ while ( nParamCount > 1 )
+ {
+ Pop();
+ nParamCount--;
+ }
PushTempToken( xToken.get() );
+ }
else
PushError( errUnknownStackVariable );
}
More information about the Libreoffice-commits
mailing list