diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-01-09 13:23:48 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-01-09 13:23:48 +0100 |
commit | 97f58a59f13fcf3a8a6675215674fb89b1a136ca (patch) | |
tree | bc5b845fe576728760b088e0039438f9a116ba0a /src/server/game/Entities/Pet | |
parent | 0a1b81043eaae0e0feba2b693e1f004ac4791c30 (diff) |
Core/Auras: Make iteration over Aura::GetAuraEffects safe by automatically skipping nullptr elements
Diffstat (limited to 'src/server/game/Entities/Pet')
-rw-r--r-- | src/server/game/Entities/Pet/Pet.cpp | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index 534232ada4f..c1248c88be1 100644 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -1329,19 +1329,16 @@ void Pet::_SaveAuras(CharacterDatabaseTransaction trans) for (AuraEffect const* effect : aura->GetAuraEffects()) { - if (effect) - { - index = 0; - stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_AURA_EFFECT); - stmt->setUInt32(index++, m_charmInfo->GetPetNumber()); - stmt->setBinary(index++, key.Caster.GetRawValue()); - stmt->setUInt32(index++, key.SpellId); - stmt->setUInt32(index++, key.EffectMask); - stmt->setUInt8(index++, effect->GetEffIndex()); - stmt->setInt32(index++, effect->GetAmount()); - stmt->setInt32(index++, effect->GetBaseAmount()); - trans->Append(stmt); - } + index = 0; + stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_AURA_EFFECT); + stmt->setUInt32(index++, m_charmInfo->GetPetNumber()); + stmt->setBinary(index++, key.Caster.GetRawValue()); + stmt->setUInt32(index++, key.SpellId); + stmt->setUInt32(index++, key.EffectMask); + stmt->setUInt8(index++, effect->GetEffIndex()); + stmt->setInt32(index++, effect->GetAmount()); + stmt->setInt32(index++, effect->GetBaseAmount()); + trans->Append(stmt); } } } |