[Libreoffice-commits] core.git: Branch 'libreoffice-4-3' - sc/source
Kohei Yoshida
kohei.yoshida at collabora.com
Thu Sep 25 05:29:36 PDT 2014
sc/source/core/data/column4.cxx | 7 ++++++-
sc/source/core/data/table3.cxx | 7 +++++--
2 files changed, 11 insertions(+), 3 deletions(-)
New commits:
commit 59e7789744c99b6431461f14694b6f9ab2492a80
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Thu Sep 18 12:13:13 2014 -0400
fdo#83764: Ensure that the row position is below MAXROW.
When attempting to split formula groups, else multi_type_vector would
try to locate a block outside its logical range.
Change-Id: I424ede112138de459b5ba3bff5e021c4407ccf3d
(cherry picked from commit 0ef6263ed2b31b8f9e431971e6c5e8928996c1c8)
Reviewed-on: https://gerrit.libreoffice.org/11518
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/sc/source/core/data/column4.cxx b/sc/source/core/data/column4.cxx
index 3f26db1..93fca48 100644
--- a/sc/source/core/data/column4.cxx
+++ b/sc/source/core/data/column4.cxx
@@ -916,11 +916,16 @@ public:
void ScColumn::SplitFormulaGroupByRelativeRef( const ScRange& rBoundRange )
{
+ if (rBoundRange.aStart.Row() >= MAXROW)
+ // Nothing to split.
+ return;
+
std::vector<SCROW> aBounds;
// Cut at row boundaries first.
aBounds.push_back(rBoundRange.aStart.Row());
- aBounds.push_back(rBoundRange.aEnd.Row()+1);
+ if (rBoundRange.aEnd.Row() < MAXROW)
+ aBounds.push_back(rBoundRange.aEnd.Row()+1);
sc::SharedFormulaUtil::splitFormulaCellGroups(maCells, aBounds);
RelativeRefBoundChecker aFunc(rBoundRange);
diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx
index 613cb1f..c5bfe75 100644
--- a/sc/source/core/data/table3.cxx
+++ b/sc/source/core/data/table3.cxx
@@ -772,8 +772,11 @@ void ScTable::SortReorderByColumn(
sc::CellStoreType& rCells = aCol[nCol].maCells;
sc::CellStoreType::position_type aPos = rCells.position(nRow1);
sc::SharedFormulaUtil::joinFormulaCellAbove(aPos);
- aPos = rCells.position(aPos.first, nRow2+1);
- sc::SharedFormulaUtil::joinFormulaCellAbove(aPos);
+ if (nRow2 < MAXROW)
+ {
+ aPos = rCells.position(aPos.first, nRow2+1);
+ sc::SharedFormulaUtil::joinFormulaCellAbove(aPos);
+ }
}
}
More information about the Libreoffice-commits
mailing list