From d088564403f4d7c5bc977f227b9a1725200a449a Mon Sep 17 00:00:00 2001 From: maximius Date: Sat, 17 Oct 2009 04:33:11 -0700 Subject: *Cleanup, and fix a likely infinite loop, thanks thenecromancer --HG-- branch : trunk --- src/game/Unit.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/game') diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index ec132ee3e7b..94a88fba710 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -4135,13 +4135,13 @@ void Unit::RemoveAllAuras() void Unit::RemoveAllAuras(uint64 casterGUID, Aura * except /*=NULL*/, bool negative /*=true*/, bool positive /*=true*/) { - AuraMap::iterator iter = m_Auras.begin(); - while (!m_Auras.empty()) + for(AuraMap::iterator iter = m_Auras.begin(); iter != m_Auras.end();) { - Aura * aur = (*iter).second; - if (aur != except && (!casterGUID || aur->GetCasterGUID()==casterGUID) - && ((negative && !aur->IsPositive()) || (positive && aur->IsPositive()))) - RemoveAura(aur); + if (iter->second != except && (!casterGUID || iter->second->GetCasterGUID()==casterGUID) + && ((negative && !iter->second->IsPositive()) || (positive && iter->second->IsPositive()))) + RemoveAura(iter); + else + ++iter; } } -- cgit v1.2.3