diff options
-rw-r--r-- | include/o3tl/sorted_vector.hxx | 5 | ||||
-rw-r--r-- | include/svl/listener.hxx | 4 | ||||
-rw-r--r-- | svl/source/notify/listener.cxx | 6 |
3 files changed, 10 insertions, 5 deletions
diff --git a/include/o3tl/sorted_vector.hxx b/include/o3tl/sorted_vector.hxx index 8324e333198a..35882ab9afca 100644 --- a/include/o3tl/sorted_vector.hxx +++ b/include/o3tl/sorted_vector.hxx @@ -113,6 +113,11 @@ public: m_vector.clear(); } + void swap(sorted_vector & other) + { + m_vector.swap(other.m_vector); + } + void reserve(size_type amount) { m_vector.reserve(amount); diff --git a/include/svl/listener.hxx b/include/svl/listener.hxx index 5ba14aea953e..38d72552618a 100644 --- a/include/svl/listener.hxx +++ b/include/svl/listener.hxx @@ -21,7 +21,7 @@ #include <svl/svldllapi.h> -#include <unordered_set> +#include <o3tl/sorted_vector.hxx> class SvtBroadcaster; class SfxHint; @@ -29,7 +29,7 @@ class SfxHint; class SVL_DLLPUBLIC SvtListener { friend class SvtBroadcaster; - typedef std::unordered_set<SvtBroadcaster*> BroadcastersType; + typedef o3tl::sorted_vector<SvtBroadcaster*> BroadcastersType; BroadcastersType maBroadcasters; const SvtListener& operator=(const SvtListener &) = delete; diff --git a/svl/source/notify/listener.cxx b/svl/source/notify/listener.cxx index 22d5508a3cef..38856a835d4f 100644 --- a/svl/source/notify/listener.cxx +++ b/svl/source/notify/listener.cxx @@ -43,7 +43,7 @@ SvtListener::~SvtListener() COVERITY_NOEXCEPT_FALSE bool SvtListener::StartListening( SvtBroadcaster& rBroadcaster ) { - std::pair<BroadcastersType::iterator, bool> r = + std::pair<BroadcastersType::const_iterator, bool> r = maBroadcasters.insert(&rBroadcaster); if (r.second) { @@ -55,7 +55,7 @@ bool SvtListener::StartListening( SvtBroadcaster& rBroadcaster ) bool SvtListener::EndListening( SvtBroadcaster& rBroadcaster ) { - BroadcastersType::iterator it = maBroadcasters.find(&rBroadcaster); + BroadcastersType::const_iterator it = maBroadcasters.find(&rBroadcaster); if (it == maBroadcasters.end()) // Not listening to this broadcaster. return false; @@ -69,7 +69,7 @@ bool SvtListener::EndListening( SvtBroadcaster& rBroadcaster ) // back into the broadcaster again void SvtListener::BroadcasterDying( SvtBroadcaster& rBroadcaster ) { - BroadcastersType::iterator it = maBroadcasters.find(&rBroadcaster); + BroadcastersType::const_iterator it = maBroadcasters.find(&rBroadcaster); if (it != maBroadcasters.end()) maBroadcasters.erase(it); } |