tdf124710, unexpected result for function IFS when argument NA() is followed by an argument that needs interpreting

Winfried Donkers Winfried.Donkers at dekimo.com
Wed Apr 17 11:54:13 UTC 2019


Hi Eike,

Upon debugging IFS( 0, NA(), 1+0, "output" ) I came to the following preliminary conclusions:
Before ScInterpreter::ScIfs_MS() is called, ScInterpreter::Interpret is called for argument '1+0' .
That leads to a call to scInterpreter::CalculateAddSub( false ) and there the problem starts.
0 and 1 are popped and added, but after PushDouble( ::rtl::math::approxAdd( 0, 1 ) )
the raw stacktype is svError.
Unfortunately most of the time I have only a machine with 4GB available for debugging, giving 5 minutes max before freezing, so the simple question what the raw stacktype is before PushDouble (when NA() is on top of the stack) will take me up to an hour -which I don't have right now.

Do you happen to know if in the case of a token on top of the stack of type svError (like NA()), this stacktype is remained when pushing new values/tokens to the stack?
If that is the case, I wouldn't know a proper way to fix this, unless there are no use cases where this behaviour is desired.
Any thoughts?

Winfried

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20190417/094bd21f/attachment.html>


More information about the LibreOffice mailing list