sc/source/core/tool/interpr4.cxx |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

New commits:
commit 1ed6f4ba6fcae232705d005de6fcbdcc8769585f
Author:     Eike Rathke <er...@redhat.com>
AuthorDate: Mon Oct 16 20:35:13 2023 +0200
Commit:     Caolán McNamara <caolan.mcnam...@collabora.com>
CommitDate: Sat Oct 21 17:31:48 2023 +0200

    Resolves: tdf#157797 Let GetCellValue() propagate previous error, if any
    
    Change-Id: I27ee8d19e4f45bef81e133c82ac17b825790208f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158064
    Reviewed-by: Eike Rathke <er...@redhat.com>
    Tested-by: Jenkins
    (cherry picked from commit aa2632885d8b169016ce8f888cc04796544213b0)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158040
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>

diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index 45ae430f5025..29072181bd91 100644
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -180,7 +180,9 @@ double ScInterpreter::GetCellValue( const ScAddress& rPos, 
ScRefCellValue& rCell
     FormulaError nErr = nGlobalError;
     nGlobalError = FormulaError::NONE;
     double nVal = GetCellValueOrZero(rPos, rCell);
-    if ( nGlobalError == FormulaError::NONE || nGlobalError == 
FormulaError::CellNoValue )
+    // Propagate previous error, if any; nGlobalError==CellNoValue is not an
+    // error here, preserve previous error or non-error.
+    if (nErr != FormulaError::NONE || nGlobalError == 
FormulaError::CellNoValue)
         nGlobalError = nErr;
     return nVal;
 }

Reply via email to