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: Kohei Yoshida <libreoffice@kohei.us>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
(cherry picked from commit d3387b38fe0eea3fb7ac630c026f02986e8dafc4)
Reviewed-on: https://gerrit.libreoffice.org/57383
Reviewed-by: Eike Rathke <erack@redhat.com>
diff --git a/sc/inc/columniterator.hxx b/sc/inc/columniterator.hxx
index b36a4c7..6e6e696 100644
--- a/sc/inc/columniterator.hxx
+++ b/sc/inc/columniterator.hxx
@@ -68,6 +68,7 @@ class ColumnIterator
{
    CellStoreType::const_position_type maPos;
    CellStoreType::const_position_type maPosEnd;
    bool mbComplete;

public:
    ColumnIterator( const CellStoreType& rCells, SCROW nRow1, SCROW nRow2 );
diff --git a/sc/source/core/data/columniterator.cxx b/sc/source/core/data/columniterator.cxx
index f736719..ad96639 100644
--- a/sc/source/core/data/columniterator.cxx
+++ b/sc/source/core/data/columniterator.cxx
@@ -172,7 +172,8 @@ namespace sc {

ColumnIterator::ColumnIterator( const CellStoreType& rCells, SCROW nRow1, SCROW nRow2 ) :
    maPos(rCells.position(nRow1)),
    maPosEnd(rCells.position(maPos.first, nRow2+1))
    maPosEnd(rCells.position(maPos.first, nRow2)),
    mbComplete(false)
{
}

@@ -180,7 +181,10 @@ ColumnIterator::~ColumnIterator() {}

void ColumnIterator::next()
{
    maPos = CellStoreType::next_position(maPos);
    if ( maPos == maPosEnd)
        mbComplete = true;
    else
        maPos = CellStoreType::next_position(maPos);
}

SCROW ColumnIterator::getRow() const
@@ -190,7 +194,7 @@ SCROW ColumnIterator::getRow() const

bool ColumnIterator::hasCell() const
{
    return maPos != maPosEnd;
    return !mbComplete;
}

mdds::mtv::element_t ColumnIterator::getType() const