diff options
| author | Eike Rathke <erack@redhat.com> | 2015-10-21 18:45:18 +0200 |
|---|---|---|
| committer | Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> | 2015-10-24 09:19:01 +0000 |
| commit | 5154b77b88c1b95afb0b2399e765bb3cad9f89fe (patch) | |
| tree | 5708166ad88ebfa307ec312874dbb198143f256d | |
| parent | 5430d2a2a642038c149c29350c86f1bee3a4e650 (diff) | |
Resolves: tdf#95226 fix broken IFERROR/IFNA array logic
Change-Id: I059248659f51746cfc1d06faeaadaf3d645c03d3
(cherry picked from commit 968e2faff6d4283dacd9010d31cb4c0df45eb7c5)
Reviewed-on: https://gerrit.libreoffice.org/19520
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
| -rw-r--r-- | sc/source/core/tool/interpr1.cxx | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index ff8a990afff1..f6caa793f61a 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -354,11 +354,11 @@ void ScInterpreter::ScIfError( bool bNAonly ) SCSIZE nC = 0, nR = 0; for ( ; nC < nCols && (nC != nErrorCol || nR != nErrorRow); /*nop*/ ) { - for ( ; nR < nRows && (nC != nErrorCol || nR != nErrorRow); ++nR) + for (nR = 0 ; nR < nRows && (nC != nErrorCol || nR != nErrorRow); ++nR) { lcl_storeJumpMatResult(pMatPtr, pJumpMat, nC, nR); } - if (nC != nErrorCol || nR != nErrorRow) + if (nC != nErrorCol && nR != nErrorRow) ++nC; } // Now the mixed cases. @@ -376,6 +376,7 @@ void ScInterpreter::ScIfError( bool bNAonly ) lcl_storeJumpMatResult(pMatPtr, pJumpMat, nC, nR); } } + nR = 0; } xNew = new ScJumpMatrixToken( pJumpMat ); GetTokenMatrixMap().insert( ScTokenMatrixMap::value_type( pCur, xNew )); |
