Kaydet (Commit) d3387b38 authored tarafından Michael Meeks's avatar Michael Meeks

tdf#118620 - avoid out of bounds iterator for end of sheet pivots.

Change-Id: I2ddcf56dc94175718739611f0791558fda87b1ba
Reviewed-on: https://gerrit.libreoffice.org/57358
Tested-by: Jenkins
Reviewed-by: 's avatarKohei Yoshida <libreoffice@kohei.us>
Reviewed-by: 's avatarMichael Meeks <michael.meeks@collabora.com>
üst bc67bda7
...@@ -67,6 +67,7 @@ class ColumnIterator ...@@ -67,6 +67,7 @@ class ColumnIterator
{ {
CellStoreType::const_position_type maPos; CellStoreType::const_position_type maPos;
CellStoreType::const_position_type maPosEnd; CellStoreType::const_position_type maPosEnd;
bool mbComplete;
public: public:
ColumnIterator( const CellStoreType& rCells, SCROW nRow1, SCROW nRow2 ); ColumnIterator( const CellStoreType& rCells, SCROW nRow1, SCROW nRow2 );
......
...@@ -171,7 +171,8 @@ namespace sc { ...@@ -171,7 +171,8 @@ namespace sc {
ColumnIterator::ColumnIterator( const CellStoreType& rCells, SCROW nRow1, SCROW nRow2 ) : ColumnIterator::ColumnIterator( const CellStoreType& rCells, SCROW nRow1, SCROW nRow2 ) :
maPos(rCells.position(nRow1)), maPos(rCells.position(nRow1)),
maPosEnd(rCells.position(maPos.first, nRow2+1)) maPosEnd(rCells.position(maPos.first, nRow2)),
mbComplete(false)
{ {
} }
...@@ -179,6 +180,9 @@ ColumnIterator::~ColumnIterator() {} ...@@ -179,6 +180,9 @@ ColumnIterator::~ColumnIterator() {}
void ColumnIterator::next() void ColumnIterator::next()
{ {
if ( maPos == maPosEnd)
mbComplete = true;
else
maPos = CellStoreType::next_position(maPos); maPos = CellStoreType::next_position(maPos);
} }
...@@ -189,7 +193,7 @@ SCROW ColumnIterator::getRow() const ...@@ -189,7 +193,7 @@ SCROW ColumnIterator::getRow() const
bool ColumnIterator::hasCell() const bool ColumnIterator::hasCell() const
{ {
return maPos != maPosEnd; return !mbComplete;
} }
mdds::mtv::element_t ColumnIterator::getType() const mdds::mtv::element_t ColumnIterator::getType() const
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment