summaryrefslogtreecommitdiff
path: root/include/svl
diff options
context:
space:
mode:
Diffstat (limited to 'include/svl')
-rw-r--r--include/svl/broadcast.hxx14
1 files changed, 11 insertions, 3 deletions
diff --git a/include/svl/broadcast.hxx b/include/svl/broadcast.hxx
index 80d9568b6392..6a6bc03c6fd6 100644
--- a/include/svl/broadcast.hxx
+++ b/include/svl/broadcast.hxx
@@ -21,7 +21,7 @@
#include <svl/svldllapi.h>
-#include <boost/unordered_set.hpp>
+#include <vector>
class SvtListener;
class SfxHint;
@@ -31,11 +31,18 @@ class SVL_DLLPUBLIC SvtBroadcaster
public:
friend class SvtListener;
- typedef boost::unordered_set<SvtListener*> ListenersType;
+ typedef std::vector<SvtListener*> ListenersType;
private:
const SvtBroadcaster& operator=(const SvtBroadcaster &); // verboten
+ /**
+ * Ensure that the container doesn't contain any duplicated listener
+ * entries. As a side effect, the listeners get sorted by pointer values
+ * after this call.
+ */
+ void Normalize();
+
void Add( SvtListener* p );
void Remove( SvtListener* p );
@@ -55,7 +62,8 @@ public:
private:
ListenersType maListeners;
- bool mbDying;
+ bool mbDisposing:1;
+ bool mbNormalized:1;
};