From a050a7852518c4443e41021dead24f8fc3bfb726 Mon Sep 17 00:00:00 2001 From: rubidium Date: Wed, 23 Jul 2008 20:42:13 +0000 Subject: (svn r13809) -Fix: memory leak each time a "new ai" got (re)started. --- src/ai/ai.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/ai/ai.cpp b/src/ai/ai.cpp index 1bf72f805..182831702 100644 --- a/src/ai/ai.cpp +++ b/src/ai/ai.cpp @@ -12,6 +12,7 @@ #include "../player_base.h" #include "ai.h" #include "default/default.h" +#include "trolly/trolly.h" #include "../signal_func.h" AIStruct _ai; @@ -225,6 +226,13 @@ void AI_PlayerDied(PlayerID player) { /* Called if this AI died */ _ai_player[player].active = false; + + if (_players_ainew[player].pathfinder == NULL) return; + + AyStarMain_Free(_players_ainew[player].pathfinder); + delete _players_ainew[player].pathfinder; + _players_ainew[player].pathfinder = NULL; + } /** @@ -246,9 +254,5 @@ void AI_Initialize() */ void AI_Uninitialize() { - const Player* p; - - FOR_ALL_PLAYERS(p) { - if (p->is_ai) AI_PlayerDied(p->index); - } + for (PlayerID p = PLAYER_FIRST; p < MAX_PLAYERS; p++) AI_PlayerDied(p); } -- cgit v1.2.3-70-g09d2