[Libreoffice-commits] core.git: sc/source
Caolán McNamara
caolanm at redhat.com
Tue May 24 13:52:33 UTC 2016
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 <caolanm at 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 <ci at libreoffice.org>
Reviewed-by: Eike Rathke <erack at redhat.com>
Tested-by: Eike Rathke <erack at 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
More information about the Libreoffice-commits
mailing list