From 81fea2d7b51549c340866050f93e3780503112f7 Mon Sep 17 00:00:00 2001 From: megamage Date: Mon, 28 Nov 2011 14:10:56 -0500 Subject: Fix some memory leak from CreateTamedPetFrom. --- src/server/game/Spells/SpellEffects.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/server/game/Spells/SpellEffects.cpp') diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index a4cf8e6a469..bcc791ac3fd 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -3828,7 +3828,10 @@ void Spell::EffectTameCreature(SpellEffIndex /*effIndex*/) Pet* pet = m_caster->CreateTamedPetFrom(creatureTarget, m_spellInfo->Id); if (!pet) // in very specific state like near world end/etc. + { + delete pet; return; + } // "kill" original creature creatureTarget->DespawnOrUnsummon(); @@ -7014,7 +7017,10 @@ void Spell::EffectCreateTamedPet(SpellEffIndex effIndex) uint32 creatureEntry = m_spellInfo->Effects[effIndex].MiscValue; Pet* pet = unitTarget->CreateTamedPetFrom(creatureEntry, m_spellInfo->Id); if (!pet) + { + delete pet; return; + } // add to world pet->GetMap()->AddToMap(pet->ToCreature()); -- cgit v1.2.3