[Libreoffice-commits] core.git: sc/source

Eike Rathke erack at redhat.com
Wed Jun 20 17:47:51 UTC 2018


 sc/source/core/tool/formularesult.cxx |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

New commits:
commit 93dcfa7ee157dd865f5d266d1f877014462eac72
Author: Eike Rathke <erack at redhat.com>
Date:   Wed Jun 20 18:07:54 2018 +0200

    Related: tdf#117049 treat yet unknown result as initial 0.0
    
    For the first =A1+B1 in B1 with iterations the result could had
    been #VALUE! depending on string conversion calculation settings.
    
    Change-Id: I8d7a745d67ba7a20f7a66e8aa143642d08ea5111
    Reviewed-on: https://gerrit.libreoffice.org/56173
    Reviewed-by: Eike Rathke <erack at redhat.com>
    Tested-by: Jenkins

diff --git a/sc/source/core/tool/formularesult.cxx b/sc/source/core/tool/formularesult.cxx
index c1ed01516113..ad10f51a36ba 100644
--- a/sc/source/core/tool/formularesult.cxx
+++ b/sc/source/core/tool/formularesult.cxx
@@ -274,7 +274,12 @@ namespace {
 inline bool isValue( formula::StackVar sv )
 {
     return sv == formula::svDouble || sv == formula::svError
-        || sv == formula::svEmptyCell;
+        || sv == formula::svEmptyCell
+        // The initial unitialized result value is double 0.0, even if the type
+        // is unknown, so the interpreter asking for it gets that double
+        // instead of having to convert a string which may result in #VALUE!
+        // (otherwise the unknown would be neither error nor double nor string)
+        || sv == formula::svUnknown;
 }
 
 inline bool isString( formula::StackVar sv )
@@ -457,6 +462,8 @@ double ScFormulaResult::GetDouble() const
                     ;   // nothing
             }
         }
+        // Note that we reach here also for the default ctor and
+        // formula::svUnknown from GetType().
         return 0.0;
     }
     if (mbEmpty)


More information about the Libreoffice-commits mailing list