[dasher] Remove duplicate event handlers before rather than after use.
- From: Patrick Welche <pwelche src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dasher] Remove duplicate event handlers before rather than after use.
- Date: Mon, 25 Feb 2013 15:22:07 +0000 (UTC)
commit 564f3cd860075c3467ca438df5dcfa9ed8da7735
Author: Patrick Welche <prlw1 cam ac uk>
Date: Mon Feb 25 15:20:41 2013 +0000
Remove duplicate event handlers before rather than after use.
There shouldn't be any anyway.
Src/DasherCore/Observable.h | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
---
diff --git a/Src/DasherCore/Observable.h b/Src/DasherCore/Observable.h
index b21f0a0..921256d 100644
--- a/Src/DasherCore/Observable.h
+++ b/Src/DasherCore/Observable.h
@@ -73,6 +73,10 @@ template <typename T> void Observable<T>::DispatchEvent(T evt) {
// Speed up start-up before any listeners are registered
if (m_vListeners.empty()) return;
+ // Just in case the same event handler was registered twice.
+ if (m_iInHandler == 0)
+ m_vListeners.unique();
+
// We may end up here recursively, so keep track of how far down we
// are, and only permit new handlers to be registered after all
// messages are processed.
@@ -92,7 +96,6 @@ template <typename T> void Observable<T>::DispatchEvent(T evt) {
if (m_iInHandler == 0) {
m_vListeners.remove(NULL);
m_vListeners.splice(m_vListeners.end(), m_vListenersToAdd);
- m_vListeners.unique();
}
}
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]