summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorFreeyorp <TheFreeYorp+git@gmail.com>2024-04-21 06:43:43 +0000
committerFreeyorp <TheFreeYorp+git@gmail.com>2024-04-21 06:44:20 +0000
commitae2556ec8fcbfed9e18d275a578f4bc47d26f721 (patch)
treee719063551edf29f31b77c1e54bfd31396f860d1 /src/map
parent3f214c06c13dfc4c4eb42a3f24553d7a1d30b26d (diff)
downloadtmwa-ae2556ec8fcbfed9e18d275a578f4bc47d26f721.tar.gz
tmwa-ae2556ec8fcbfed9e18d275a578f4bc47d26f721.tar.bz2
tmwa-ae2556ec8fcbfed9e18d275a578f4bc47d26f721.tar.xz
tmwa-ae2556ec8fcbfed9e18d275a578f4bc47d26f721.zip
DB: Maybe fix concurrent modification
Diffstat (limited to 'src/map')
-rw-r--r--src/map/npc.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/map/npc.cpp b/src/map/npc.cpp
index efb2ba3..76f0e14 100644
--- a/src/map/npc.cpp
+++ b/src/map/npc.cpp
@@ -1053,13 +1053,9 @@ void npc_free_internal(dumb_ptr<npc_data> nd_)
// Also clean up any events we registered to the global ev_db
if (auto nd = nd_->is_script())
{
- for (auto& pair : ev_db)
- {
- if (pair.second.nd == nd)
- {
- ev_db.erase(pair.first);
- }
- }
+ ev_db.erase_if([&](auto& pair) {
+ return pair.second.nd == nd;
+ });
}
nd_.delete_();