From 184c75247be792f5b1adb050a4a6ea5d8dbbeb2e Mon Sep 17 00:00:00 2001 From: megamage Date: Wed, 26 Nov 2008 23:10:02 -0600 Subject: *Try to fix the bug that stealth spells cause crash. --HG-- branch : trunk --- src/game/Unit.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 2e855283cfe..48651522734 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -492,11 +492,16 @@ void Unit::RemoveAurasWithInterruptFlags(uint32 flag) //sLog.outDetail("auraflag:%u flag:%u = %u",(*iter)->GetSpellProto()->AuraInterruptFlags,flag,(*iter)->GetSpellProto()->AuraInterruptFlags & flag); if(*iter && ((*iter)->GetSpellProto()->AuraInterruptFlags & flag)) { - RemoveAurasDueToSpell((*iter)->GetId()); - if (!m_interruptableAuras.empty()) - next = m_interruptableAuras.begin(); + if((*iter)->IsInUse()) + sLog.outError("Aura %u is trying to remove itself! Flag %u. May cause crash!", (*iter)->GetId(), flag); else - break; + { + RemoveAurasDueToSpell((*iter)->GetId()); + if (!m_interruptableAuras.empty()) + next = m_interruptableAuras.begin(); + else + break; + } } } -- cgit v1.2.3