diff --git a/sc/inc/columnspanset.hxx b/sc/inc/columnspanset.hxx index d8cfc41f524b..5a3dc7645a43 100644 --- a/sc/inc/columnspanset.hxx +++ b/sc/inc/columnspanset.hxx @@ -58,6 +58,7 @@ private: ColumnSpansType::const_iterator miPos; ColumnType(SCROW nStart, SCROW nEnd, bool bInit); + ColumnType(const ColumnType& rOther); }; typedef std::vector> TableType; diff --git a/sc/source/core/data/columnspanset.cxx b/sc/source/core/data/columnspanset.cxx index eb09ea26be98..bec9c8a7e270 100644 --- a/sc/source/core/data/columnspanset.cxx +++ b/sc/source/core/data/columnspanset.cxx @@ -53,6 +53,9 @@ ColRowSpan::ColRowSpan(SCCOLROW nStart, SCCOLROW nEnd) : mnStart(nStart), mnEnd( ColumnSpanSet::ColumnType::ColumnType(SCROW nStart, SCROW nEnd, bool bInit) : maSpans(nStart, nEnd+1, bInit), miPos(maSpans.begin()) {} +ColumnSpanSet::ColumnType::ColumnType(const ColumnType& rOther) : + maSpans(rOther.maSpans), miPos(maSpans.begin()) {} // NB: copying maSpans invalidates miPos - reset it + ColumnSpanSet::Action::~Action() {} void ColumnSpanSet::Action::startColumn(SCTAB /*nTab*/, SCCOL /*nCol*/) {} @@ -142,6 +145,7 @@ void ColumnSpanSet::scan( ColumnNonEmptyRangesScanner aScanner(rCol.maSpans, bVal); ParseBlock(rSrcCells.begin(), rSrcCells, aScanner, nRow1, nRow2); + rCol.miPos = rCol.maSpans.begin(); } }