diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-02-15 14:10:30 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-02-16 00:35:10 +0100 |
commit | 7faa218231b7a807412feada3aa1223b43b5626e (patch) | |
tree | 08ea7a2e4fc9e88a8158dc0c8392555b94138e27 /svl | |
parent | e1082e45361a92a31adedcc3ed0a35c704bca543 (diff) |
ofz#6311 still problems with SdrEdgeObj listening to same obj at start as end
Change-Id: Ibd80b484788779b73943b28a5f36e51ebcacec30
Reviewed-on: https://gerrit.libreoffice.org/49821
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svl')
-rw-r--r-- | svl/qa/unit/notify/test_SfxBroadcaster.cxx | 8 | ||||
-rw-r--r-- | svl/source/notify/lstner.cxx | 8 |
2 files changed, 8 insertions, 8 deletions
diff --git a/svl/qa/unit/notify/test_SfxBroadcaster.cxx b/svl/qa/unit/notify/test_SfxBroadcaster.cxx index d7b127c4c1ef..f0bd409cd969 100644 --- a/svl/qa/unit/notify/test_SfxBroadcaster.cxx +++ b/svl/qa/unit/notify/test_SfxBroadcaster.cxx @@ -62,7 +62,7 @@ SfxBroadcasterTest::AddingListenersIncreasesCount() CPPUNIT_ASSERT_EQUAL(size_t(0), sb.GetListenerCount()); - sl.StartListening(sb, true); + sl.StartListening(sb, DuplicateHandling::Prevent); CPPUNIT_ASSERT_EQUAL(size_t(1), sb.GetListenerCount()); } @@ -73,7 +73,7 @@ SfxBroadcasterTest::RemovingListenersDecreasesCount() MockedSfxListener sl; CPPUNIT_ASSERT_EQUAL(size_t(0), sb.GetListenerCount()); - sl.StartListening(sb, true); + sl.StartListening(sb, DuplicateHandling::Prevent); CPPUNIT_ASSERT_EQUAL(size_t(1), sb.GetListenerCount()); sl.EndListening(sb, true); CPPUNIT_ASSERT_EQUAL(size_t(0), sb.GetListenerCount()); @@ -87,8 +87,8 @@ SfxBroadcasterTest::HintsAreNotForwardedToRemovedListeners() MockedSfxListener sl2; SfxHint hint; - sl1.StartListening(sb, true); - sl2.StartListening(sb, true); + sl1.StartListening(sb, DuplicateHandling::Prevent); + sl2.StartListening(sb, DuplicateHandling::Prevent); CPPUNIT_ASSERT_EQUAL_MESSAGE("All listeners were added.", size_t(2), sb.GetListenerCount()); sl1.EndListening(sb, true); sb.Forward(sb, hint); diff --git a/svl/source/notify/lstner.cxx b/svl/source/notify/lstner.cxx index 9c79da9e5185..5be1e2bdffdf 100644 --- a/svl/source/notify/lstner.cxx +++ b/svl/source/notify/lstner.cxx @@ -88,20 +88,20 @@ void SfxListener::RemoveBroadcaster_Impl( SfxBroadcaster& rBroadcaster ) Some code uses duplicates as a kind of ref-counting thing i.e. they add and remove listeners on different code paths, and they only really stop listening when the last EndListening() is called. */ -void SfxListener::StartListening( SfxBroadcaster& rBroadcaster, bool bPreventDuplicates ) +void SfxListener::StartListening(SfxBroadcaster& rBroadcaster, DuplicateHandling eDuplicateHanding) { bool bListeningAlready = IsListening( rBroadcaster ); #ifdef DBG_UTIL - if (bListeningAlready && !bPreventDuplicates) + if (bListeningAlready && eDuplicateHanding == DuplicateHandling::Unexpected) { auto f = mpImpl->maCallStacks.find( &rBroadcaster ); SAL_WARN("svl", "previous StartListening call came from: " << sal::backtrace_to_string(f->second.get())); } #endif - assert(!(bListeningAlready && !bPreventDuplicates) && "duplicate listener, try building with DBG_UTIL to find the other insert site."); + assert(!(bListeningAlready && eDuplicateHanding == DuplicateHandling::Unexpected) && "duplicate listener, try building with DBG_UTIL to find the other insert site."); - if ( !bListeningAlready || !bPreventDuplicates ) + if (!bListeningAlready || eDuplicateHanding != DuplicateHandling::Prevent) { rBroadcaster.AddListener(*this); mpImpl->maBCs.push_back( &rBroadcaster ); |