diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2007-09-27 12:51:58 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2007-09-27 12:51:58 +0000 |
commit | 5db12d5286ac32c37ac84909f04796416857e3f1 (patch) | |
tree | a46f2664b2e097695c8cb194b4c66cd653d8c664 /sc/source/core/data/bcaslot.cxx | |
parent | e1f9f6d402c7fbbf1711a9964679b6d30a91c71c (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.cxx | 16 |
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 ); +} |