From 4cfa0ef624717d32570ce86f8c185a82ffb74b10 Mon Sep 17 00:00:00 2001 From: sippeangelo Date: Wed, 16 Sep 2015 12:54:34 +0200 Subject: [PATCH] Fixed event broker unsubscribe bug where event relay would still think it belonged to a broker after unsubscribed --- include/Core/EventBroker.h | 9 --------- src/game/Core/EventBroker.cpp | 1 + 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/include/Core/EventBroker.h b/include/Core/EventBroker.h index 410a93a..f19309c 100644 --- a/include/Core/EventBroker.h +++ b/include/Core/EventBroker.h @@ -121,8 +121,6 @@ public: int Process(std::string contextTypeName); void Clear(); void Unsubscribe(BaseEventRelay &relay); - template - void UnsubscribeAll(); private: typedef std::string ContextTypeName_t; // typeid(ContextType).name() @@ -156,13 +154,6 @@ int EventBroker::Process() return Process(contextTypeName); } -template -void EventBroker::UnsubscribeAll() -{ - const std::string contextTypeName = typeid(ContextType).name(); - m_ContextRelays.erase(contextTypeName); -} - } #endif // MessageRelay_h__ diff --git a/src/game/Core/EventBroker.cpp b/src/game/Core/EventBroker.cpp index 748983a..f24b073 100644 --- a/src/game/Core/EventBroker.cpp +++ b/src/game/Core/EventBroker.cpp @@ -40,6 +40,7 @@ void dd::EventBroker::Unsubscribe(BaseEventRelay &relay) // ? { if (it->second == &relay) { + relay.m_Broker = nullptr; eventRelays.erase(it); break; }