From a62c82e4db0bab7a5b631938c1bfcc50b0c44f7d Mon Sep 17 00:00:00 2001 From: Josh Allen Date: Sat, 18 Sep 2004 05:48:40 +0000 Subject: [PATCH] Fix memory leak with Clients. --- stepmania/src/NetworkSyncServer.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/stepmania/src/NetworkSyncServer.cpp b/stepmania/src/NetworkSyncServer.cpp index fb2cd39d56..9947be6bf1 100644 --- a/stepmania/src/NetworkSyncServer.cpp +++ b/stepmania/src/NetworkSyncServer.cpp @@ -64,6 +64,9 @@ bool StepManiaLanServer::ServerStart() void StepManiaLanServer::ServerStop() { + for (unsigned int x = 0; x < Client.size(); ++x) + delete Client[x]; + Client.clear(); server.close(); stop = true; @@ -113,12 +116,18 @@ void StepManiaLanServer::Disconnect(const unsigned int clientNum) vector::iterator Iterator; Iterator = Client.begin(); if (clientNum == (Client.size()-1)) + { + delete Client[clientNum]; Client.pop_back(); + } else for (unsigned int x = 0; x < Client.size(); ++x) { if (x == clientNum) + { + delete Client[x]; Client.erase(Iterator); + } Iterator++; } } @@ -532,7 +541,7 @@ void StepManiaLanServer::NewClientCheck() } else { - Client.pop_back(); + Disconnect(Client.size()-1); } }