sc/source/core/data/bcaslot.cxx | 9 +++++++++ sc/source/core/inc/bcaslot.hxx | 1 + 2 files changed, 10 insertions(+)
New commits: commit 0d116ad98d7c25df4ad63839bcf2fd7f152956df Author: Caolán McNamara <caol...@redhat.com> Date: Tue May 24 13:28:03 2016 +0100 Resolves: tdf#99733 don't crash on moving range of cells Change-Id: Ib9afc8ef292e517954b24321100862f5235290e5 Reviewed-on: https://gerrit.libreoffice.org/25405 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Eike Rathke <er...@redhat.com> Tested-by: Eike Rathke <er...@redhat.com> diff --git a/sc/source/core/data/bcaslot.cxx b/sc/source/core/data/bcaslot.cxx index 0e64aa5..8d5e1bb 100644 --- a/sc/source/core/data/bcaslot.cxx +++ b/sc/source/core/data/bcaslot.cxx @@ -506,7 +506,11 @@ void ScBroadcastAreaSlot::EraseArea( ScBroadcastAreas::iterator& rIter ) ScBroadcastArea* pArea = (*rIter).mpArea; aBroadcastAreaTbl.erase( rIter); if (!pArea->DecRef()) + { + if (pBASM->IsInBulkBroadcast()) + pBASM->RemoveBulkGroupArea(pArea); delete pArea; + } } } @@ -1158,6 +1162,11 @@ size_t ScBroadcastAreaSlotMachine::RemoveBulkArea( const ScBroadcastArea* pArea return aBulkBroadcastAreas.erase( pArea ); } +void ScBroadcastAreaSlotMachine::RemoveBulkGroupArea( ScBroadcastArea* pArea ) +{ + m_BulkGroupAreas.erase(pArea); +} + void ScBroadcastAreaSlotMachine::PushAreaToBeErased( ScBroadcastAreaSlot* pSlot, ScBroadcastAreas::iterator& rIter ) { diff --git a/sc/source/core/inc/bcaslot.hxx b/sc/source/core/inc/bcaslot.hxx index ab5b93c..a7d020b 100644 --- a/sc/source/core/inc/bcaslot.hxx +++ b/sc/source/core/inc/bcaslot.hxx @@ -322,6 +322,7 @@ public: bool InsertBulkArea( const ScBroadcastArea* p ); void InsertBulkGroupArea( ScBroadcastArea* pArea, const ScRange& rRange ); + void RemoveBulkGroupArea( ScBroadcastArea* pArea ); void BulkBroadcastGroupAreas(); /// @return: how many removed
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits