From 12d5161318a4d8d781f896812f5a95fa7b46d8a8 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Mon, 31 Mar 2008 02:07:25 +0000 Subject: [FIX] Memory leaks in load and copy method git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@96 6ecfd1a5-f3ed-3746-8530-beee90d26b22 --- pokemod/MapTrainer.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'pokemod/MapTrainer.cpp') diff --git a/pokemod/MapTrainer.cpp b/pokemod/MapTrainer.cpp index dbcae301..ccd0d12d 100644 --- a/pokemod/MapTrainer.cpp +++ b/pokemod/MapTrainer.cpp @@ -56,8 +56,8 @@ MapTrainer::MapTrainer(const Pokemod* pokemod, const QString& fileName, const in MapTrainer::~MapTrainer() { - foreach (MapTrainerTeamMember* teamMember, m_teamMembers) - delete teamMember; + while (teamMemberCount()) + deleteTeamMember(0); } bool MapTrainer::validate() const @@ -138,7 +138,8 @@ void MapTrainer::load(const QString& fileName, int id) throw(Exception) QStringList path = pokemod()->path().split('/'); path.removeLast(); QDir fdir(path.join("/")); - m_teamMembers.clear(); + while (teamMemberCount()) + deleteTeamMember(0); if (fdir.cd("team")) { QStringList files(fdir.entryList(QStringList("*.pini"), QDir::Files, QDir::Name)); @@ -358,7 +359,8 @@ MapTrainer& MapTrainer::operator=(const MapTrainer& rhs) m_appearFlag = rhs.m_appearFlag; m_dialog = rhs.m_dialog; m_leadTeamMember = rhs.m_leadTeamMember; - m_teamMembers.clear(); + while (teamMemberCount()) + deleteTeamMember(0); foreach (MapTrainerTeamMember* teamMember, rhs.m_teamMembers) m_teamMembers.append(new MapTrainerTeamMember(pokemod(), *teamMember, teamMember->id())); return *this; -- cgit