svl/source/notify/lstner.cxx |    7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

New commits:
commit 7fe443e1f3f235cd6f0f04e4956616464ca5f80f
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Wed Jan 15 09:22:45 2025 +0100
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Wed Jan 15 13:10:00 2025 +0100

    SfxListener::RemoveBroadcaster_Impl must handle duplicates
    
    SfxListener::StartListening explicitly allows duplicates.
    RemoveBroadcaster_Impl should be safe in that regard; use
    std::erase to remove all occurrences of the broadcaster.
    
    Change-Id: Icc4d1d12c450a0893e9e4da429120f32388b35fa
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180262
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>

diff --git a/svl/source/notify/lstner.cxx b/svl/source/notify/lstner.cxx
index 40a59960a0d3..2d582c31f998 100644
--- a/svl/source/notify/lstner.cxx
+++ b/svl/source/notify/lstner.cxx
@@ -59,13 +59,10 @@ SfxListener::~SfxListener() COVERITY_NOEXCEPT_FALSE
 
 void SfxListener::RemoveBroadcaster_Impl( SfxBroadcaster& rBroadcaster )
 {
-    auto it = std::find( maBCs.begin(), maBCs.end(), &rBroadcaster );
-    if (it != maBCs.end()) {
-        maBCs.erase( it );
+    std::erase(maBCs, &rBroadcaster);
 #ifdef DBG_UTIL
-        maCallStacks.erase( &rBroadcaster );
+    maCallStacks.erase( &rBroadcaster );
 #endif
-    }
 }
 
 

Reply via email to