fix(Core): Memleaks fixes - Part II. (#5760)

This commit is contained in:
UltraNix
2021-05-14 10:15:45 +02:00
committed by GitHub
parent 1b6c2004ce
commit 8dd58ebb5b
19 changed files with 138 additions and 127 deletions

View File

@@ -12688,11 +12688,11 @@ void Unit::ApplySpellImmune(uint32 spellId, uint32 op, uint32 type, bool apply,
if (spellId == 0 && std::find_if(m_spellImmune[op].begin(), m_spellImmune[op].end(), spellIdImmunityPredicate(type)) != m_spellImmune[op].end())
return;
SpellImmune Immune;
Immune.spellId = spellId;
Immune.type = type;
Immune.blockType = blockType;
m_spellImmune[op].push_back(Immune);
SpellImmune immune;
immune.spellId = spellId;
immune.type = type;
immune.blockType = blockType;
m_spellImmune[op].push_back(std::move(immune));
}
else
{

View File

@@ -342,12 +342,14 @@ enum SpellImmuneBlockType
struct SpellImmune
{
SpellImmune() : spellId(0), type(IMMUNITY_EFFECT), blockType(SPELL_BLOCK_TYPE_ALL) { }
uint32 spellId;
uint32 type : 16;
uint32 blockType : 16;
uint32 type;
uint32 blockType;
};
typedef std::list<SpellImmune> SpellImmuneList;
typedef std::vector<SpellImmune> SpellImmuneList;
enum UnitModifierType
{