diff options
author | Andrei Karas <akaras@inbox.ru> | 2011-08-27 18:41:30 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2011-08-27 18:41:30 +0300 |
commit | 26dea46cf8ebcd22c62810bd9c866e7e7e2b6cb2 (patch) | |
tree | 5e6ecf428f1716082214db65928848a849f9d109 | |
parent | 96ca346fe114804609acea0b13594422f3f09002 (diff) | |
download | plus-26dea46cf8ebcd22c62810bd9c866e7e7e2b6cb2.tar.gz plus-26dea46cf8ebcd22c62810bd9c866e7e7e2b6cb2.tar.bz2 plus-26dea46cf8ebcd22c62810bd9c866e7e7e2b6cb2.tar.xz plus-26dea46cf8ebcd22c62810bd9c866e7e7e2b6cb2.zip |
Fix memory leaks in guildmanager.
-rw-r--r-- | src/game.cpp | 3 | ||||
-rw-r--r-- | src/guildmanager.cpp | 11 | ||||
-rw-r--r-- | src/guildmanager.h | 2 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/game.cpp b/src/game.cpp index c933378e6..6a3a63bb6 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -299,6 +299,9 @@ static void destroyGuiWindows() if (whoIsOnline) whoIsOnline->setAllowUpdate(false); + if (guildManager) + guildManager->clear(); + del_0(windowMenu); del_0(localChatTab) // Need to do this first, so it can remove itself del_0(debugChatTab) diff --git a/src/guildmanager.cpp b/src/guildmanager.cpp index bc4158a12..c929e8598 100644 --- a/src/guildmanager.cpp +++ b/src/guildmanager.cpp @@ -50,6 +50,7 @@ GuildManager::GuildManager() : GuildManager::~GuildManager() { + delete mTab; mTab = 0; } @@ -360,3 +361,13 @@ void GuildManager::notice(std::string msg) else send("!setmotd " + msg); } + +void GuildManager::clear() +{ + if (socialWindow) + { + Guild *guild = Guild::getGuild(1); + if (guild) + socialWindow->removeTab(guild); + } +}
\ No newline at end of file diff --git a/src/guildmanager.h b/src/guildmanager.h index a46cba915..88e1276eb 100644 --- a/src/guildmanager.h +++ b/src/guildmanager.h @@ -66,6 +66,8 @@ class GuildManager Guild *createGuild(); + void clear(); + bool havePower() { return mHavePower; } |