diff options
Diffstat (limited to 'sc')
-rw-r--r-- | sc/inc/column.hxx | 2 | ||||
-rw-r--r-- | sc/inc/mtvelements.hxx | 3 | ||||
-rw-r--r-- | sc/source/core/data/column.cxx | 3 | ||||
-rw-r--r-- | sc/source/core/data/column3.cxx | 2 | ||||
-rw-r--r-- | sc/source/core/data/mtvelements.cxx | 5 |
5 files changed, 11 insertions, 4 deletions
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx index 6300fe70bca1..4c08e7b41479 100644 --- a/sc/inc/column.hxx +++ b/sc/inc/column.hxx @@ -123,8 +123,6 @@ class ScColumn // Broadcasters for formula cells. sc::BroadcasterStoreType maBroadcasters; - sc::CellStoreEvent maCellsEvent; - // Cell values. sc::CellStoreType maCells; diff --git a/sc/inc/mtvelements.hxx b/sc/inc/mtvelements.hxx index 636706e0c234..05a0970bd64d 100644 --- a/sc/inc/mtvelements.hxx +++ b/sc/inc/mtvelements.hxx @@ -95,6 +95,9 @@ public: void element_block_acquired(const mdds::mtv::base_element_block* block); void element_block_released(const mdds::mtv::base_element_block* block); + + /** Stop processing events. */ + void stop(); }; struct CellStoreTrait diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx index 4bd91f60f3a0..3b148dda6b88 100644 --- a/sc/source/core/data/column.cxx +++ b/sc/source/core/data/column.cxx @@ -82,8 +82,7 @@ ScColumn::ScColumn(ScSheetLimits const & rSheetLimits) : maCellTextAttrs(rSheetLimits.GetMaxRowCount()), maCellNotes(rSheetLimits.GetMaxRowCount()), maBroadcasters(rSheetLimits.GetMaxRowCount()), - maCellsEvent(this), - maCells(maCellsEvent), + maCells(sc::CellStoreEvent(this)), mnBlkCountFormula(0), nCol( 0 ), nTab( 0 ), diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx index 9bbd9c1bca77..4a062a476a32 100644 --- a/sc/source/core/data/column3.cxx +++ b/sc/source/core/data/column3.cxx @@ -156,6 +156,8 @@ void ScColumn::Delete( SCROW nRow ) void ScColumn::FreeAll() { + maCells.event_handler().stop(); + auto maxRowCount = GetDoc().GetSheetLimits().GetMaxRowCount(); // Keep a logical empty range of 0-rDoc.MaxRow() at all times. maCells.clear(); diff --git a/sc/source/core/data/mtvelements.cxx b/sc/source/core/data/mtvelements.cxx index c7d7e52bfccf..ee6c9cf1499c 100644 --- a/sc/source/core/data/mtvelements.cxx +++ b/sc/source/core/data/mtvelements.cxx @@ -51,6 +51,11 @@ void CellStoreEvent::element_block_released(const mdds::mtv::base_element_block* } } +void CellStoreEvent::stop() +{ + mpCol = nullptr; +} + ColumnBlockPositionSet::ColumnBlockPositionSet(ScDocument& rDoc) : mrDoc(rDoc) {} ColumnBlockPosition* ColumnBlockPositionSet::getBlockPosition(SCTAB nTab, SCCOL nCol) |