aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Pools/PoolMgr.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2015-05-14 00:04:49 +0200
committerShauren <shauren.trinity@gmail.com>2015-05-14 00:04:49 +0200
commitee1c1b97be4492ecabe8b15ea6323fc37e4eaa8c (patch)
tree8c1b930dd58096c5da8187d5abc3824806293121 /src/server/game/Pools/PoolMgr.cpp
parent5c5cb3e555da279b45ccff19b5ab4fc2656c75e2 (diff)
Core/Maps: Fixed invalid iterator usage
Closes #14687
Diffstat (limited to 'src/server/game/Pools/PoolMgr.cpp')
-rw-r--r--src/server/game/Pools/PoolMgr.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/server/game/Pools/PoolMgr.cpp b/src/server/game/Pools/PoolMgr.cpp
index 15f378e138a..a82652d2f03 100644
--- a/src/server/game/Pools/PoolMgr.cpp
+++ b/src/server/game/Pools/PoolMgr.cpp
@@ -225,8 +225,12 @@ void PoolGroup<Creature>::Despawn1Object(uint64 guid)
if (!map->Instanceable())
{
auto creatureBounds = map->GetCreatureBySpawnIdStore().equal_range(guid);
- for (auto itr = creatureBounds.first; itr != creatureBounds.second; ++itr)
- itr->second->AddObjectToRemoveList();
+ for (auto itr = creatureBounds.first; itr != creatureBounds.second;)
+ {
+ Creature* creature = itr->second;
+ ++itr;
+ creature->AddObjectToRemoveList();
+ }
}
}
}
@@ -243,8 +247,12 @@ void PoolGroup<GameObject>::Despawn1Object(uint64 guid)
if (!map->Instanceable())
{
auto gameobjectBounds = map->GetGameObjectBySpawnIdStore().equal_range(guid);
- for (auto itr = gameobjectBounds.first; itr != gameobjectBounds.second; ++itr)
- itr->second->AddObjectToRemoveList();
+ for (auto itr = gameobjectBounds.first; itr != gameobjectBounds.second;)
+ {
+ GameObject* go = itr->second;
+ ++itr;
+ go->AddObjectToRemoveList();
+ }
}
}
}