diff --git a/interfaces/Crafter.Event.cppm b/interfaces/Crafter.Event.cppm index 6bdce6a..9c526b1 100644 --- a/interfaces/Crafter.Event.cppm +++ b/interfaces/Crafter.Event.cppm @@ -172,7 +172,8 @@ namespace Crafter { for (auto& listenerSlice : this->listeners) { listenerSlice.second.erase(std::remove(listenerSlice.second.begin(), listenerSlice.second.end(), static_cast*>(nullptr)), listenerSlice.second.end()); - for (const auto& listener : listenerSlice.second) { + auto sliceCopy = listenerSlice.second; + for (const auto& listener : sliceCopy) { #ifdef CRAFTER_TIMING auto start = std::chrono::high_resolution_clock::now(); #endif @@ -201,7 +202,8 @@ namespace Crafter { for (auto& listenerSlice : this->listeners) { listenerSlice.second.erase(std::remove(listenerSlice.second.begin(), listenerSlice.second.end(), static_cast*>(nullptr)), listenerSlice.second.end()); - for (const auto& listener : listenerSlice.second) { + auto sliceCopy = listenerSlice.second; + for (const auto& listener : sliceCopy) { #ifdef CRAFTER_TIMING auto start = std::chrono::high_resolution_clock::now(); #endif