aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Pet
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-01-09 13:23:48 +0100
committerShauren <shauren.trinity@gmail.com>2025-01-09 13:23:48 +0100
commit97f58a59f13fcf3a8a6675215674fb89b1a136ca (patch)
treebc5b845fe576728760b088e0039438f9a116ba0a /src/server/game/Entities/Pet
parent0a1b81043eaae0e0feba2b693e1f004ac4791c30 (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.cpp23
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);
}
}
}