Erwan - Fix issue 30 (memory leaks in GuiCombat.cpp)

This commit is contained in:
wagic.the.homebrew@gmail.com
2009-09-23 06:56:05 +00:00
parent 311ec5fbad
commit 82551174d9
3 changed files with 6 additions and 3 deletions
+1
View File
@@ -30,6 +30,7 @@ struct AttackerDamaged : DamagerDamaged {
vector<DefenserDamaged*> blockers; vector<DefenserDamaged*> blockers;
AttackerDamaged(MTGCardInstance* card, float x, float y, bool show, Player* damageSelecter); AttackerDamaged(MTGCardInstance* card, float x, float y, bool show, Player* damageSelecter);
AttackerDamaged(MTGCardInstance* card, const Pos& ref, bool show, Player* damageSelecter); AttackerDamaged(MTGCardInstance* card, const Pos& ref, bool show, Player* damageSelecter);
~AttackerDamaged();
}; };
#endif #endif
+5
View File
@@ -88,3 +88,8 @@ void DamagerDamaged::Render(CombatStep mode)
AttackerDamaged::AttackerDamaged(MTGCardInstance* card, float x, float y, bool show, Player * damageSelecter) : DamagerDamaged(card, x, y, show, damageSelecter) {} AttackerDamaged::AttackerDamaged(MTGCardInstance* card, float x, float y, bool show, Player * damageSelecter) : DamagerDamaged(card, x, y, show, damageSelecter) {}
AttackerDamaged::AttackerDamaged(MTGCardInstance* card, const Pos& ref, bool show, Player * damageSelecter) : DamagerDamaged(card, ref, show, damageSelecter) {} AttackerDamaged::AttackerDamaged(MTGCardInstance* card, const Pos& ref, bool show, Player * damageSelecter) : DamagerDamaged(card, ref, show, damageSelecter) {}
AttackerDamaged::~AttackerDamaged(){
for (vector<DefenserDamaged*>::iterator q = blockers.begin(); q != blockers.end(); ++q)
delete(*q);
}
-3
View File
@@ -33,8 +33,6 @@ GuiCombat::~GuiCombat()
for (inner_iterator it = attackers.begin(); it != attackers.end(); ++it) for (inner_iterator it = attackers.begin(); it != attackers.end(); ++it)
{ {
for (vector<DefenserDamaged*>::iterator q = (*it)->blockers.begin(); q != (*it)->blockers.end(); ++q)
delete(*q);
delete (*it); delete (*it);
} }
} }
@@ -370,7 +368,6 @@ int GuiCombat::receiveEventMinus(WEvent* e)
{ {
AttackerDamaged* d = *it; AttackerDamaged* d = *it;
if (activeAtk == *it) activeAtk = NULL; if (activeAtk == *it) activeAtk = NULL;
for (vector<DefenserDamaged*>::iterator q = (*it)->blockers.begin(); q != (*it)->blockers.end(); ++q) delete(*q);
attackers.erase(it); attackers.erase(it);
SAFE_DELETE(d); SAFE_DELETE(d);
return 1; return 1;