[Libreoffice-commits] core.git: sc/source
Eike Rathke
erack at redhat.com
Tue Sep 27 22:11:46 UTC 2016
sc/source/core/data/bcaslot.cxx | 12 +++++++-----
sc/source/core/inc/bcaslot.hxx | 2 +-
2 files changed, 8 insertions(+), 6 deletions(-)
New commits:
commit b325f332409ec72d8c5906c64d635e9f083ebfdd
Author: Eike Rathke <erack at redhat.com>
Date: Tue Sep 27 21:55:45 2016 +0200
sc-perf: remove one more unnecessary call to TrackFormulas()
... when leaving bulk broadcast.
Change-Id: I3d456094ecc7759ed3e58af7901d544126c30b27
diff --git a/sc/source/core/data/bcaslot.cxx b/sc/source/core/data/bcaslot.cxx
index 2051f2c..3689062 100644
--- a/sc/source/core/data/bcaslot.cxx
+++ b/sc/source/core/data/bcaslot.cxx
@@ -1098,10 +1098,12 @@ void ScBroadcastAreaSlotMachine::LeaveBulkBroadcast()
if (--nInBulkBroadcast == 0)
{
ScBroadcastAreasBulk().swap( aBulkBroadcastAreas);
- BulkBroadcastGroupAreas();
+ bool bBroadcasted = BulkBroadcastGroupAreas();
// Trigger the "final" tracking.
if (pDoc->IsTrackFormulasPending())
pDoc->FinalTrackFormulas();
+ else if (bBroadcasted)
+ pDoc->TrackFormulas();
}
}
}
@@ -1125,10 +1127,10 @@ void ScBroadcastAreaSlotMachine::InsertBulkGroupArea( ScBroadcastArea* pArea, co
pSet->set(rRange, true);
}
-void ScBroadcastAreaSlotMachine::BulkBroadcastGroupAreas()
+bool ScBroadcastAreaSlotMachine::BulkBroadcastGroupAreas()
{
if (m_BulkGroupAreas.empty())
- return;
+ return false;
sc::BulkDataHint aHint(*pDoc);
@@ -1156,8 +1158,8 @@ void ScBroadcastAreaSlotMachine::BulkBroadcastGroupAreas()
}
m_BulkGroupAreas.clear();
- if (bBroadcasted)
- pDoc->TrackFormulas();
+
+ return bBroadcasted;
}
size_t ScBroadcastAreaSlotMachine::RemoveBulkArea( const ScBroadcastArea* pArea )
diff --git a/sc/source/core/inc/bcaslot.hxx b/sc/source/core/inc/bcaslot.hxx
index a7d020b..9ff6b97 100644
--- a/sc/source/core/inc/bcaslot.hxx
+++ b/sc/source/core/inc/bcaslot.hxx
@@ -323,7 +323,7 @@ public:
void InsertBulkGroupArea( ScBroadcastArea* pArea, const ScRange& rRange );
void RemoveBulkGroupArea( ScBroadcastArea* pArea );
- void BulkBroadcastGroupAreas();
+ bool BulkBroadcastGroupAreas();
/// @return: how many removed
size_t RemoveBulkArea( const ScBroadcastArea* p );
More information about the Libreoffice-commits
mailing list