From 6ace4b2cf88ec1467a2910c8dd560290ce3c5f5e Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Sat, 28 Aug 2021 13:06:56 -0700 Subject: [PATCH] Fixes mistake in EventManager::manageTickEvent --- library/modules/EventManager.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/library/modules/EventManager.cpp b/library/modules/EventManager.cpp index f4838b192..675e8aff4 100644 --- a/library/modules/EventManager.cpp +++ b/library/modules/EventManager.cpp @@ -380,13 +380,16 @@ static void manageTickEvent(color_ostream& out) { return; for (auto iter = handlers[EventType::TICK].begin(); iter != handlers[EventType::TICK].end(); ) { EventHandler &handle = iter->second; + //check if we find a handler registered if ( toRemove.find(handle) == toRemove.end() ) { + //the event is from registerTick, so things are already cleaned up ++iter; continue; } iter = handlers[EventType::TICK].erase(iter); toRemove.erase(handle); - registerTick(handle, handle.freq, iter->first); + //the handler is registered with the listeners, so we want it to keep listening + registerListener(DFHack::EventManager::EventType::TICK, handle, iter->first); if ( toRemove.empty() ) break; }