[Libreoffice-commits] core.git: Branch 'libreoffice-5-0' - sc/source

Eike Rathke erack at redhat.com
Fri Oct 9 09:26:22 PDT 2015


 sc/source/core/tool/interpr4.cxx |   22 +++++++---------------
 1 file changed, 7 insertions(+), 15 deletions(-)

New commits:
commit c366c0ff5c9d3511a87ff1004a24a5a70f11ab8e
Author: Eike Rathke <erack at redhat.com>
Date:   Fri Oct 9 16:25:10 2015 +0000

    Revert "Resolves: tdf#94869 propagate error when obtaining a scalar double value"
    
    This reverts commit bfd51e38599d717a3c1b19acd882b52175dd3d09.
    
    Calculating with NaN cries for even more problems..
    
    Change-Id: Ie1b7cddc4f157859ee3087b0eadb3a082672a1c7
    Reviewed-on: https://gerrit.libreoffice.org/19286
    Reviewed-by: Eike Rathke <erack at redhat.com>
    Tested-by: Eike Rathke <erack at redhat.com>

diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index e351743..9d4821c 100644
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -1082,7 +1082,7 @@ double ScInterpreter::PopDouble()
     }
     else
         SetError( errUnknownStackVariable);
-    return CreateDoubleError( nGlobalError);
+    return 0.0;
 }
 
 svl::SharedString ScInterpreter::PopString()
@@ -2186,10 +2186,7 @@ bool ScInterpreter::DoubleRefToPosSingleRef( const ScRange& rRange, ScAddress& r
 double ScInterpreter::GetDoubleFromMatrix(const ScMatrixRef& pMat)
 {
     if (!pMat)
-    {
-        SetError( errParameterExpected);
-        return CreateDoubleError( nGlobalError);
-    }
+        return 0.0;
 
     if ( !pJumpMatrix )
         return pMat->GetDouble( 0 );
@@ -2202,7 +2199,7 @@ double ScInterpreter::GetDoubleFromMatrix(const ScMatrixRef& pMat)
         return pMat->GetDouble( nC, nR);
 
     SetError( errNoValue);
-    return CreateDoubleError( nGlobalError);
+    return 0.0;
 }
 
 double ScInterpreter::GetDouble()
@@ -2236,6 +2233,8 @@ double ScInterpreter::GetDouble()
                 aCell.assign(*pDok, aAdr);
                 nVal = GetCellValue(aAdr, aCell);
             }
+            else
+                nVal = 0.0;
         }
         break;
         case svExternalSingleRef:
@@ -2264,6 +2263,7 @@ double ScInterpreter::GetDouble()
         break;
         case svError:
             PopError();
+            nVal = 0.0;
         break;
         case svEmptyCell:
         case svMissing:
@@ -2273,16 +2273,8 @@ double ScInterpreter::GetDouble()
         default:
             PopError();
             SetError( errIllegalParameter);
+            nVal = 0.0;
     }
-
-    // Propagate error also as double error, so matrix operations where one
-    // operand is a scalar get that propagated if there is no specific
-    // nGlobalError check, and when the matrix is pushed the error is cleared
-    // because the matrix is assumed to hold double errors at the corresponding
-    // positions. See PushMatrix().
-    if (nGlobalError)
-        nVal = CreateDoubleError( nGlobalError);
-
     if ( nFuncFmtType == nCurFmtType )
         nFuncFmtIndex = nCurFmtIndex;
     return nVal;


More information about the Libreoffice-commits mailing list