ScInterpreter::GetString() with svDoubleRef type of argument

Winfried Donkers W.Donkers at dci-electronics.nl
Fri Feb 13 01:09:58 PST 2015


Hi,

I was pointed to a possible bug with Calc function LEFT() when entering an array for the text argument. In some cases it worked, in other it didn't. I created bug 89358 with an attachment showing the behaviour.

I found out it is because when ScInterpreter::GetString() is called  when the stack value is an array (svDoubleRef), the string is taken from the array dependent on the relative position of the formula (ScInterpreter::DoubleRefToPosSingleRef()).

As ScInterpreter::GetString() is used in all Calc functions accepting text arguments, I don't know if there cases where this formula-position-dependent cell picking from arrays is useful. Therefor, changing that code may produce unwanted results elsewhere.

Does anyone know of cases where this formula-position-dependent stuff is needed?
I would like to change the code so that -if no formula-position-dependent stuff is needed - the top left cell of the range is used.

The specific code has been there since September 2000 at least.

Winfried




More information about the LibreOffice mailing list