Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


On 08/02/2013 02:28 AM, Winfried Donkers wrote:
Hi Kohei,

If the culprit seems to be within ScFormulaCell::Interpret() then, well, ... I can't say much else 
would help than stepping through these calls and keeping track of what called >which in what state. 
The old code had some debugging/tracing facilities that generated a .dot file from within
ScFormulaCell::Interpret() but unfortunately got completely removed with
5ff49e8ce958deb8217880b2aaf2bd41a567e8a1 (these are the cases where I don't understand blind removal 
of #ifdef'ed code) so for testing purposes you might want to >revive the part of 
sc/source/core/data/cell.cxx of that change into sc/source/core/data/formulacell.cxx
As you seem to be the expert on formulacell.cxx and the (Back)Solver() code, I hope you can shed 
some light on this problem.

I'm afraid I cannot.

To be brutally honest, I wouldn't debug this without first moving this code out of ScInterpreter and into a place like ScDocument::Solver() without those pesky temporary formula cell and temporary formula expression creation steps. That's basically the strategy I first advised. The current code is mixing recursion and iteration together, which is a recipe for trouble. There is no way you can debug this and stay sane. I would go nuts if I were forced to debug this code in its current form.

So, I would still stick with my original advice, and recommend we move this code out of the interpreter.

Kohei

--
Kohei Yoshida, LibreOffice Calc hacker, SUSE.


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.