From 26dea46cf8ebcd22c62810bd9c866e7e7e2b6cb2 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sat, 27 Aug 2011 18:41:30 +0300 Subject: Fix memory leaks in guildmanager. --- src/game.cpp | 3 +++ src/guildmanager.cpp | 11 +++++++++++ src/guildmanager.h | 2 ++ 3 files changed, 16 insertions(+) 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; } -- cgit v1.2.3-70-g09d2