summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2015-10-21 18:45:18 +0200
committerChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2015-10-27 20:41:05 +0000
commit7dcd3a825ce521dc799cd5794c938a6d62276160 (patch)
tree720a523cbbe9922852426922fc2cafd00b26ac37
parentda67c46896fc5de1798a2cf3da4ee38bf5517bea (diff)
Resolves: tdf#95226 fix broken IFERROR/IFNA array logic
Change-Id: I059248659f51746cfc1d06faeaadaf3d645c03d3 (cherry picked from commit 968e2faff6d4283dacd9010d31cb4c0df45eb7c5) Reviewed-on: https://gerrit.libreoffice.org/19523 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
-rw-r--r--sc/source/core/tool/interpr1.cxx5
1 files changed, 3 insertions, 2 deletions
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index e86b955f7686..56b8ce192e27 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -349,11 +349,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.
@@ -371,6 +371,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 ));