mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 01:37:00 +00:00
[10315] Make AuraHolder::IsDeleted() really work.
In fact it has been broken originally when added in Aura long before move it to AuraHolder. Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
685edfe7e2
commit
d31ce2e2a3
4 changed files with 8 additions and 6 deletions
|
|
@ -7735,12 +7735,9 @@ void SpellAuraHolder::RemoveAura(SpellEffectIndex index)
|
|||
|
||||
void SpellAuraHolder::ApplyAuraModifiers(bool apply, bool real)
|
||||
{
|
||||
for (int32 i = 0; i < MAX_EFFECT_INDEX; ++i)
|
||||
{
|
||||
Aura *aur = GetAuraByEffectIndex(SpellEffectIndex(i));
|
||||
if (aur)
|
||||
for (int32 i = 0; i < MAX_EFFECT_INDEX && !IsDeleted(); ++i)
|
||||
if (Aura *aur = GetAuraByEffectIndex(SpellEffectIndex(i)))
|
||||
aur->ApplyModifier(apply, real);
|
||||
}
|
||||
}
|
||||
|
||||
void SpellAuraHolder::_AddSpellAuraHolder()
|
||||
|
|
|
|||
|
|
@ -87,6 +87,8 @@ class MANGOS_DLL_SPEC SpellAuraHolder
|
|||
bool IsDeleted() const { return m_deleted;}
|
||||
bool IsEmptyHolder() const;
|
||||
|
||||
void SetDeleted() { m_deleted = true; }
|
||||
|
||||
void SetInUse(bool state)
|
||||
{
|
||||
if(state)
|
||||
|
|
|
|||
|
|
@ -4572,7 +4572,10 @@ void Unit::RemoveSpellAuraHolder(SpellAuraHolder *holder, AuraRemoveMode mode)
|
|||
// If holder in use (removed from code that plan access to it data after return)
|
||||
// store it in holder list with delayed deletion
|
||||
if (holder->IsInUse())
|
||||
{
|
||||
holder->SetDeleted();
|
||||
m_deletedHolders.push_back(holder);
|
||||
}
|
||||
else
|
||||
delete holder;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "10314"
|
||||
#define REVISION_NR "10315"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue