# HG changeset patch # User rubidium # Date 1216845733 0 # Node ID 7e169185025ffcf689f424e150ea4a299d97bd76 # Parent 2dfd72441294a940bd65c407320f66d6162ad420 (svn r13809) -Fix: memory leak each time a "new ai" got (re)started. diff --git a/src/ai/ai.cpp b/src/ai/ai.cpp --- 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 @@ { /* 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_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); }