summaryrefslogtreecommitdiff
path: root/sc/source/core/data/bcaslot.cxx
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2007-09-27 12:51:58 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2007-09-27 12:51:58 +0000
commit5db12d5286ac32c37ac84909f04796416857e3f1 (patch)
treea46f2664b2e097695c8cb194b4c66cd653d8c664 /sc/source/core/data/bcaslot.cxx
parente1f9f6d402c7fbbf1711a9964679b6d30a91c71c (diff)
INTEGRATION: CWS calc44 (1.8.70); FILE MERGED
2007/09/06 14:44:04 er 1.8.70.1: #i81332# #b6582756# bulk broadcast in DeleteArea
Diffstat (limited to 'sc/source/core/data/bcaslot.cxx')
-rw-r--r--sc/source/core/data/bcaslot.cxx16
1 files changed, 14 insertions, 2 deletions
diff --git a/sc/source/core/data/bcaslot.cxx b/sc/source/core/data/bcaslot.cxx
index cbfe7bb2bc3d..f67c3cee0c8e 100644
--- a/sc/source/core/data/bcaslot.cxx
+++ b/sc/source/core/data/bcaslot.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: bcaslot.cxx,v $
*
- * $Revision: 1.8 $
+ * $Revision: 1.9 $
*
- * last change: $Author: rt $ $Date: 2007-07-03 15:47:12 $
+ * last change: $Author: hr $ $Date: 2007-09-27 13:51:58 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -280,7 +280,11 @@ void ScBroadcastAreaSlot::DelBroadcastAreasInRange( const ScRange& rRange )
{
ScBroadcastArea* pArea = *aIter;
if (!pArea->DecRef())
+ {
+ if (pBASM->IsInBulkBroadcast())
+ pBASM->RemoveBulkArea( pArea);
delete pArea;
+ }
ScBroadcastAreas::iterator aDel( aIter);
++aIter;
aBroadcastAreaTbl.erase( aDel);
@@ -337,6 +341,8 @@ void ScBroadcastAreaSlot::UpdateRemove( UpdateRefMode eUpdateRefMode,
{
aBroadcastAreaTbl.erase( aDel);
pArea->DecRef();
+ if (pBASM->IsInBulkBroadcast())
+ pBASM->RemoveBulkArea( pArea);
pArea->SetInUpdateChain( TRUE );
ScBroadcastArea* pUC = pBASM->GetEOUpdateChain();
if ( pUC )
@@ -701,3 +707,9 @@ bool ScBroadcastAreaSlotMachine::InsertBulkArea( const ScBroadcastArea* pArea )
{
return aBulkBroadcastAreas.insert( pArea ).second;
}
+
+
+size_t ScBroadcastAreaSlotMachine::RemoveBulkArea( const ScBroadcastArea* pArea )
+{
+ return aBulkBroadcastAreas.erase( pArea );
+}