summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/o3tl/sorted_vector.hxx5
-rw-r--r--include/svl/listener.hxx4
-rw-r--r--svl/source/notify/listener.cxx6
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);
}