diff options
author | Eike Rathke <erack@redhat.com> | 2016-07-16 01:43:11 +0200 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2016-07-18 15:16:23 +0000 |
commit | da54d7b0c2b2c39f0f4d316085f1fcb4b02eb440 (patch) | |
tree | 4f9a5ec537fc38b4bfbd36847ea608a4868da28c | |
parent | 7059845bd8a32748b670cc7ad56e0da9281eb6e3 (diff) |
Resolves: tdf#100764 check row when determining bounds for deleted range
Regression introduced with a2e591e26549294cdb07eb685d4069343404d898 for tdf#86502
Change-Id: I493c458faedccfd6e2ddf849073a52661ef2e4d0
(cherry picked from commit ab1b351840160655a9f0caedbb35e9fdf203c5a0)
Reviewed-on: https://gerrit.libreoffice.org/27247
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | sc/source/core/tool/token.cxx | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx index e20104b0ad95..f1ba08801ae5 100644 --- a/sc/source/core/tool/token.cxx +++ b/sc/source/core/tool/token.cxx @@ -4397,7 +4397,10 @@ void checkBounds( if (pDeletedRange && aAbs.aStart.Row() <= pDeletedRange->aStart.Row()) { SCROW nOffset = pDeletedRange->aStart.Row() - aAbs.aStart.Row(); - rBounds.push_back(rPos.Row()+nOffset); + SCROW nRow = rPos.Row() + nOffset; + // Unlike for rCheckRange, for pDeletedRange nRow can be anywhere>=0. + if (ValidRow(nRow)) + rBounds.push_back(nRow); } if (aAbs.aEnd.Row() >= rCheckRange.aEnd.Row()) @@ -4419,7 +4422,10 @@ void checkBounds( if (pDeletedRange && aAbs.aEnd.Row() >= pDeletedRange->aEnd.Row()) { SCROW nOffset = pDeletedRange->aEnd.Row() + 1 - aAbs.aStart.Row(); - rBounds.push_back(rPos.Row()+nOffset); + SCROW nRow = rPos.Row() + nOffset; + // Unlike for rCheckRange, for pDeletedRange nRow can be ~anywhere. + if (ValidRow(nRow)) + rBounds.push_back(nRow); } } |