diff options
author | Caolán McNamara <caolanm@redhat.com> | 2014-05-29 10:45:39 +0100 |
---|---|---|
committer | Kohei Yoshida <libreoffice@kohei.us> | 2014-05-29 19:00:51 -0500 |
commit | 456e2353ef9ae4e1034d078e026187ce5382c54a (patch) | |
tree | 11fe04136837cebfa2affbaf90021362c1bf7eeb | |
parent | 519e4381a0339b638b5fff5141bff31c0f59ffb0 (diff) |
Resolves: fdo#79392 don't access after last row, when last row is max last row
Change-Id: I06749af90bed6a43f3fb6b3b5ceb61d5fbbc7c02
(cherry picked from commit a35d92197d850527bd294eb6197b5bf83109d5be)
Reviewed-on: https://gerrit.libreoffice.org/9546
Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
Tested-by: Kohei Yoshida <libreoffice@kohei.us>
-rw-r--r-- | sc/source/core/data/column3.cxx | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx index c7b157e8dc70..c311e37cab24 100644 --- a/sc/source/core/data/column3.cxx +++ b/sc/source/core/data/column3.cxx @@ -236,19 +236,22 @@ void ScColumn::DeleteRow( SCROW nStartRow, SCSIZE nSize ) // Check if there are any cells below the end row that will get shifted. bool bShiftCells = false; - aPos = maCells.position(itCell, nEndRow+1); - itCell = aPos.first; - if (itCell->type == sc::element_type_empty) + if (nEndRow < MAXROWCOUNT-1) //only makes sense to do this if there *is* a row after the end row { - // This block is empty. See if there is any block that follows. - sc::CellStoreType::iterator itTest = itCell; - ++itTest; - if (itTest != maCells.end()) - // Non-empty block follows -> cells that will get shifted. + aPos = maCells.position(itCell, nEndRow+1); + itCell = aPos.first; + if (itCell->type == sc::element_type_empty) + { + // This block is empty. See if there is any block that follows. + sc::CellStoreType::iterator itTest = itCell; + ++itTest; + if (itTest != maCells.end()) + // Non-empty block follows -> cells that will get shifted. + bShiftCells = true; + } + else bShiftCells = true; } - else - bShiftCells = true; sc::SingleColumnSpanSet aNonEmptySpans; if (bShiftCells) |