From e7b615c7e798a8db3e0ca1d4b72e41a2d8ea5a71 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Tue, 30 Jan 2024 22:00:42 +0100 Subject: [PATCH] fix: Memory leak in event manager --- lib/libimhex/include/hex/api/event_manager.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/libimhex/include/hex/api/event_manager.hpp b/lib/libimhex/include/hex/api/event_manager.hpp index 9689c7996..fa90b359f 100644 --- a/lib/libimhex/include/hex/api/event_manager.hpp +++ b/lib/libimhex/include/hex/api/event_manager.hpp @@ -8,7 +8,6 @@ #include #include -#include #include #include @@ -46,7 +45,7 @@ namespace hex { public: explicit constexpr EventId(const char *eventName) { m_hash = 0x811C'9DC5; - for (auto c : std::string_view(eventName)) { + for (const char c : std::string_view(eventName)) { m_hash = (m_hash >> 5) | (m_hash << 27); m_hash ^= c; } @@ -62,6 +61,7 @@ namespace hex { struct EventBase { EventBase() noexcept = default; + virtual ~EventBase() = default; }; template @@ -118,7 +118,7 @@ namespace hex { if (getTokenStore().contains(token)) { auto&& [begin, end] = getTokenStore().equal_range(token); - auto eventRegistered = std::any_of(begin, end, [&](auto &item) { + const auto eventRegistered = std::any_of(begin, end, [&](auto &item) { return item.second->first == E::Id; }); if (eventRegistered) {