From a19bc28aba6ec682f74ad7f8f0fd8104bdece3af Mon Sep 17 00:00:00 2001 From: rubidium Date: Sat, 12 Feb 2011 21:29:35 +0000 Subject: (svn r22069) -Fix: delete all savegame packets, not just the first one --- src/network/network_server.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index d465078a7..7e870d1c3 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -178,14 +178,18 @@ ServerNetworkGameSocketHandler::~ServerNetworkGameSocketHandler() OrderBackup::ResetUser(this->client_id); if (this->savegame_mutex != NULL) this->savegame_mutex->BeginCritical(); - delete this->savegame_packets; if (this->savegame != NULL) this->savegame->cs = NULL; - if (this->savegame_mutex != NULL) this->savegame_mutex->EndCritical(); /* Make sure the saving is completely cancelled. */ if (this->savegame != NULL) WaitTillSaved(); + while (this->savegame_packets != NULL) { + Packet *p = this->savegame_packets->next; + delete this->savegame_packets; + this->savegame_packets = p; + } + delete this->savegame_mutex; } -- cgit v1.2.3-54-g00ecf