summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2011-08-26 01:12:25 +0200
committerYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2011-09-28 16:59:43 +0200
commit3a72ea3a61b812924be76e2a0bccd2882a8b06ce (patch)
tree36694a6160f69b035d1f5d63c474213f304e8657
parentda782617397773fb2f29a4021fe73a80e38f62dd (diff)
downloadmanaserv-3a72ea3a61b812924be76e2a0bccd2882a8b06ce.tar.gz
manaserv-3a72ea3a61b812924be76e2a0bccd2882a8b06ce.tar.bz2
manaserv-3a72ea3a61b812924be76e2a0bccd2882a8b06ce.tar.xz
manaserv-3a72ea3a61b812924be76e2a0bccd2882a8b06ce.zip
Fixed mem leak on the item and monster manager unloading process
Reviewed-by: o11c. Note: the initialize/reload() api problem will be fixed in another commit.
-rw-r--r--src/game-server/itemmanager.h3
-rw-r--r--src/game-server/main-game.cpp14
-rw-r--r--src/game-server/monstermanager.h7
3 files changed, 16 insertions, 8 deletions
diff --git a/src/game-server/itemmanager.h b/src/game-server/itemmanager.h
index c310df44..efd31710 100644
--- a/src/game-server/itemmanager.h
+++ b/src/game-server/itemmanager.h
@@ -40,6 +40,9 @@ class ItemManager
mItemDatabaseVersion(0)
{}
+ ~ItemManager()
+ { deinitialize(); }
+
/**
* Loads item reference file.
*/
diff --git a/src/game-server/main-game.cpp b/src/game-server/main-game.cpp
index 35b809e1..9d96a6ab 100644
--- a/src/game-server/main-game.cpp
+++ b/src/game-server/main-game.cpp
@@ -242,16 +242,16 @@ static void deinitializeServer()
enet_deinitialize();
// Destroy message handlers
- delete gameHandler;
- delete accountHandler;
- delete postMan;
- delete gBandwidth;
+ delete gameHandler; gameHandler = 0;
+ delete accountHandler; accountHandler = 0;
+ delete postMan; postMan = 0;
+ delete gBandwidth; gBandwidth = 0;
// Destroy Managers
- delete stringFilter;
- monsterManager->deinitialize();
+ delete stringFilter; stringFilter = 0;
+ delete monsterManager; monsterManager = 0;
delete skillManager; skillManager = 0;
- itemManager->deinitialize();
+ delete itemManager; itemManager = 0;
MapManager::deinitialize();
StatusManager::deinitialize();
diff --git a/src/game-server/monstermanager.h b/src/game-server/monstermanager.h
index f04a5733..07ebb58f 100644
--- a/src/game-server/monstermanager.h
+++ b/src/game-server/monstermanager.h
@@ -30,8 +30,13 @@ class MonsterClass;
class MonsterManager
{
public:
+ MonsterManager(const std::string &file):
+ mMonsterReferenceFile(file)
+ {}
+
+ ~MonsterManager()
+ { deinitialize(); }
- MonsterManager(const std::string &file) : mMonsterReferenceFile(file) {}
/**
* Loads monster reference file.
*/