Core/Units: Call Unit::InterruptNonMeleeSpells before RemoveFromWorld to make GetCaster() return a valid pointer on AuraEffect unapply methods.

Fixes a crash in VisitorHelper related to Mind Vision.

closes #43
This commit is contained in:
Machiavelli
2011-01-04 23:43:20 +01:00
parent 3208b7ae1f
commit eac259f75f
+3 -1
View File
@@ -13301,6 +13301,9 @@ void Unit::RemoveFromWorld()
void Unit::CleanupsBeforeDelete(bool finalCleanup) void Unit::CleanupsBeforeDelete(bool finalCleanup)
{ {
// This needs to be before RemoveFromWorld to make GetCaster() return a valid pointer on aura removal
InterruptNonMeleeSpells(true);
if (IsInWorld()) if (IsInWorld())
RemoveFromWorld(); RemoveFromWorld();
@@ -13313,7 +13316,6 @@ void Unit::CleanupsBeforeDelete(bool finalCleanup)
if (finalCleanup) if (finalCleanup)
m_cleanupDone = true; m_cleanupDone = true;
InterruptNonMeleeSpells(true);
m_Events.KillAllEvents(false); // non-delatable (currently casted spells) will not deleted now but it will deleted at call in Map::RemoveAllObjectsInRemoveList m_Events.KillAllEvents(false); // non-delatable (currently casted spells) will not deleted now but it will deleted at call in Map::RemoveAllObjectsInRemoveList
CombatStop(); CombatStop();
ClearComboPointHolders(); ClearComboPointHolders();