diff options
author | xinef1 <w.szyszko2@gmail.com> | 2017-02-04 22:37:16 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2017-02-04 22:37:16 +0100 |
commit | 86da1a19bb36edf3242dafac6e45e87434ddff73 (patch) | |
tree | 5c445d5763a46adbbbfa6d605f40fb8c6ee2f0e6 /src/server/game/Grids/ObjectGridLoader.cpp | |
parent | 9e1b286984c63b801561a67dd4eae7910ec1af10 (diff) |
Core/Misc: Fix various crashes, also related to multithreading (#19012)
* When iterating groups we have to either do it not in multithreaded context (map updates) or start with checking maps (they are guaranteed to change in single thread update).
* Properly clear ComboPoint references on player remove
* remove some possible references item may have when it is deleted during save.
* Also clear all hostile references when unit is removed from map.
Diffstat (limited to 'src/server/game/Grids/ObjectGridLoader.cpp')
-rw-r--r-- | src/server/game/Grids/ObjectGridLoader.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/server/game/Grids/ObjectGridLoader.cpp b/src/server/game/Grids/ObjectGridLoader.cpp index 48d4ef634fd..1cdedf34ec5 100644 --- a/src/server/game/Grids/ObjectGridLoader.cpp +++ b/src/server/game/Grids/ObjectGridLoader.cpp @@ -216,7 +216,7 @@ void ObjectGridStoper::Visit(CreatureMapType &m) for (CreatureMapType::iterator iter = m.begin(); iter != m.end(); ++iter) { iter->GetSource()->RemoveAllDynObjects(); - if (iter->GetSource()->IsInCombat()) + if (iter->GetSource()->IsInCombat() || !iter->GetSource()->getThreatManager().areThreatListsEmpty()) { iter->GetSource()->CombatStop(); iter->GetSource()->DeleteThreatList(); |