fix memory leak in AISequence

This commit is contained in:
greye 2014-01-14 16:22:50 +04:00
parent 15d946415e
commit 61707694e8

View file

@ -67,8 +67,11 @@ bool MWMechanics::AiSequence::getCombatTarget(std::string &targetActorId) const
void MWMechanics::AiSequence::stopCombat() void MWMechanics::AiSequence::stopCombat()
{ {
while (getTypeId() == AiPackage::TypeIdCombat) while (getTypeId() == AiPackage::TypeIdCombat)
{
delete *mPackages.begin();
mPackages.erase (mPackages.begin()); mPackages.erase (mPackages.begin());
} }
}
bool MWMechanics::AiSequence::isPackageDone() const bool MWMechanics::AiSequence::isPackageDone() const
{ {
@ -83,6 +86,7 @@ void MWMechanics::AiSequence::execute (const MWWorld::Ptr& actor,float duration)
{ {
if (mPackages.front()->execute (actor,duration)) if (mPackages.front()->execute (actor,duration))
{ {
delete *mPackages.begin();
mPackages.erase (mPackages.begin()); mPackages.erase (mPackages.begin());
mDone = true; mDone = true;
} }