[Libreoffice-commits] core.git: svl/source

Stephan Bergmann sbergman at redhat.com
Fri Nov 15 00:50:09 PST 2013


 svl/source/notify/broadcast.cxx |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

New commits:
commit 78751ef3be02d6dcddf56830ec60f792096697c2
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Fri Nov 15 09:46:16 2013 +0100

    Band-aid fix for SvtBroadcaster::Broadcast
    
    ...after 18d07b2affbbbfb2ff9152d3ad8d1744fe75ab47 "Rework SvtListener and
    SvtBroadcaster internals" broke the case where SvtBroadcaster::Add/Remove is
    called from within SvtBroadcaster::Broadcast, and at least CppunitTest_sc_ucalc
    started to fail.
    
    It should be evaluated whether the original SvtBroadcaster logic to handle this
    was better than taking a copy here.
    
    Change-Id: Ie47bccb8c5789e405349a9c8b89f30b1dba3cfba

diff --git a/svl/source/notify/broadcast.cxx b/svl/source/notify/broadcast.cxx
index 96d34a7..24b5790 100644
--- a/svl/source/notify/broadcast.cxx
+++ b/svl/source/notify/broadcast.cxx
@@ -114,7 +114,8 @@ SvtBroadcaster::~SvtBroadcaster()
 void SvtBroadcaster::Broadcast( const SfxHint &rHint )
 {
     Normalize();
-    std::for_each(maListeners.begin(), maListeners.end(), NotifyHandler(*this, rHint));
+    ListenersType listeners(maListeners);
+    std::for_each(listeners.begin(), listeners.end(), NotifyHandler(*this, rHint));
 }
 
 void SvtBroadcaster::ListenersGone() {}


More information about the Libreoffice-commits mailing list