Kaydet (Commit) 61fb1d4d authored tarafından Eike Rathke's avatar Eike Rathke Kaydeden (comit) Caolán McNamara

Resolves: tdf#93388 broadcasting to removed listeners isn't a good idea

This cures only a symptom, the underlying cause is that the broadcasters
still are listed in maBulkGroupAreas.

Change-Id: I9625483016a51eb6f6a7e3d58ed42c7dad3a57b3
(cherry picked from commit 2d4edd7d)
Reviewed-on: https://gerrit.libreoffice.org/17684Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 6e87f5ca
...@@ -1155,12 +1155,22 @@ void ScBroadcastAreaSlotMachine::BulkBroadcastGroupAreas() ...@@ -1155,12 +1155,22 @@ void ScBroadcastAreaSlotMachine::BulkBroadcastGroupAreas()
for (; it != itEnd; ++it) for (; it != itEnd; ++it)
{ {
ScBroadcastArea* pArea = it->first; ScBroadcastArea* pArea = it->first;
const sc::ColumnSpanSet* pSpans = it->second;
assert(pArea); assert(pArea);
assert(pSpans); SvtBroadcaster& rBC = pArea->GetBroadcaster();
aHint.setSpans(pSpans); if (!rBC.HasListeners())
pArea->GetBroadcaster().Broadcast(aHint); {
bBroadcasted = true; /* FIXME: find the cause where the last listener is removed and
* this area is still listed here. */
SAL_WARN("sc.core","ScBroadcastAreaSlotMachine::BulkBroadcastGroupAreas - pArea has no listeners and should had been removed already");
}
else
{
const sc::ColumnSpanSet* pSpans = it->second;
assert(pSpans);
aHint.setSpans(pSpans);
rBC.Broadcast(aHint);
bBroadcasted = true;
}
} }
maBulkGroupAreas.clear(); maBulkGroupAreas.clear();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment