summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2009-03-10 12:23:50 -0600
committerIra Rice <irarice@gmail.com>2009-03-10 12:50:39 -0600
commitcabb9735f2e31b9f1f64b2496e1775d54861da36 (patch)
tree6772eda38f08a77af7717c8f4747aab77061cfcf /src
parent75fc8e62d25ff1d39408588f76d95df4a9a7e663 (diff)
downloadmana-client-cabb9735f2e31b9f1f64b2496e1775d54861da36.tar.gz
mana-client-cabb9735f2e31b9f1f64b2496e1775d54861da36.tar.bz2
mana-client-cabb9735f2e31b9f1f64b2496e1775d54861da36.tar.xz
mana-client-cabb9735f2e31b9f1f64b2496e1775d54861da36.zip
Fix some mem leaks
Diffstat (limited to 'src')
-rw-r--r--src/beingmanager.cpp5
-rw-r--r--src/beingmanager.h4
-rw-r--r--src/game.cpp5
-rw-r--r--src/gui/chat.cpp2
-rw-r--r--src/gui/setup.cpp11
-rw-r--r--src/gui/setup.h4
-rw-r--r--src/gui/setup_colors.cpp5
-rw-r--r--src/gui/skill.cpp2
-rw-r--r--src/gui/table.cpp1
-rw-r--r--src/gui/window.cpp2
-rw-r--r--src/main.cpp1
-rw-r--r--src/player_relations.cpp24
-rw-r--r--src/player_relations.h2
13 files changed, 20 insertions, 48 deletions
diff --git a/src/beingmanager.cpp b/src/beingmanager.cpp
index e5836aa7..0c7a310a 100644
--- a/src/beingmanager.cpp
+++ b/src/beingmanager.cpp
@@ -52,11 +52,6 @@ BeingManager::BeingManager(Network *network):
{
}
-BeingManager::~BeingManager()
-{
- clear();
-}
-
void BeingManager::setMap(Map *map)
{
mMap = map;
diff --git a/src/beingmanager.h b/src/beingmanager.h
index 3284ce16..472e2c83 100644
--- a/src/beingmanager.h
+++ b/src/beingmanager.h
@@ -37,8 +37,6 @@ class BeingManager
public:
BeingManager(Network *network);
- ~BeingManager();
-
/**
* Sets the map on which beings are created
*/
@@ -115,7 +113,7 @@ class BeingManager
void logic();
/**
- * Destroys all beings except the local player
+ * Destroys all beings except the local player and current NPC (if any)
*/
void clear();
diff --git a/src/game.cpp b/src/game.cpp
index 3e626d87..144b059f 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -205,6 +205,7 @@ void createGuiWindows(Network *network)
npcListDialog = new NpcListDialog(network);
npcStringDialog = new NpcStringDialog(network);
skillDialog = new SkillDialog();
+ setupWindow = new Setup();
minimap = new Minimap();
equipmentWindow = new EquipmentWindow();
tradeWindow = new TradeWindow(network);
@@ -338,12 +339,11 @@ Game::Game(Network *network):
msg.writeInt32(tick_time);
engine->changeMap(map_path);
-
- setupWindow->setInGame(true);
}
Game::~Game()
{
+ delete player_node;
destroyGuiWindows();
delete beingManager;
@@ -351,7 +351,6 @@ Game::~Game()
delete joystick;
delete particleEngine;
delete engine;
- delete player_node;
beingManager = NULL;
floorItemManager = NULL;
diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp
index 44e08052..098d4e46 100644
--- a/src/gui/chat.cpp
+++ b/src/gui/chat.cpp
@@ -109,8 +109,6 @@ ChatWindow::~ChatWindow()
config.setValue("PartyPrefix", partyPrefix);
config.setValue("ReturnToggles", mReturnToggles ? "1" : "0");
delete mRecorder;
- delete mItemLinkHandler;
- delete mParty;
}
void ChatWindow::chatLog(std::string line, int own, bool ignoreRecord)
diff --git a/src/gui/setup.cpp b/src/gui/setup.cpp
index b24aeb5d..4798f598 100644
--- a/src/gui/setup.cpp
+++ b/src/gui/setup.cpp
@@ -65,9 +65,9 @@ Setup::Setup():
btn->setPosition(x, height - btn->getHeight() - 5);
add(btn);
- // Store this button, as it needs to be enabled/disabled
+ // Disable this button when the windows aren't created yet
if (!strcmp(*curBtn, "Reset Windows"))
- mResetWindows = btn;
+ btn->setEnabled(statusWindow != NULL);
}
TabbedArea *panel = new TabbedArea();
@@ -102,8 +102,6 @@ Setup::Setup():
add(panel);
setLocationRelativeTo(getParent());
-
- setInGame(false);
}
Setup::~Setup()
@@ -143,8 +141,3 @@ void Setup::action(const gcn::ActionEvent &event)
tradeWindow->resetToDefaultSize();
}
}
-
-void Setup::setInGame(bool inGame)
-{
- mResetWindows->setEnabled(inGame);
-} \ No newline at end of file
diff --git a/src/gui/setup.h b/src/gui/setup.h
index d798162c..9f1bafc7 100644
--- a/src/gui/setup.h
+++ b/src/gui/setup.h
@@ -32,7 +32,6 @@
#include "../guichanfwd.h"
class SetupTab;
-class Button;
/**
* The setup dialog.
@@ -52,8 +51,6 @@ class Setup : public Window, public gcn::ActionListener
*/
~Setup();
- void setInGame(bool inGame);
-
/**
* Event handling method.
*/
@@ -61,7 +58,6 @@ class Setup : public Window, public gcn::ActionListener
private:
std::list<SetupTab*> mTabs;
- gcn::Button *mResetWindows;
};
#endif
diff --git a/src/gui/setup_colors.cpp b/src/gui/setup_colors.cpp
index ecb5bcf7..31b56b51 100644
--- a/src/gui/setup_colors.cpp
+++ b/src/gui/setup_colors.cpp
@@ -57,8 +57,9 @@ Setup_Colors::Setup_Colors() :
mPreview = new BrowserBox(BrowserBox::AUTO_WRAP);
mPreview->setOpaque(false);
- // don't do anything with links
- mPreview->setLinkHandler(NULL);
+ // Replace this later with a more appropriate link handler. For now, this'll
+ // do, as it'll do nothing when clicked on.
+ mPreview->setLinkHandler(new ItemLinkHandler());
mPreviewBox = new ScrollArea(mPreview);
mPreviewBox->setHeight(20);
diff --git a/src/gui/skill.cpp b/src/gui/skill.cpp
index c29b70ab..a8250fce 100644
--- a/src/gui/skill.cpp
+++ b/src/gui/skill.cpp
@@ -162,7 +162,7 @@ SkillDialog::SkillDialog():
SkillDialog::~SkillDialog()
{
- delete_all(mSkillList);
+ delete mTable;
}
void SkillDialog::action(const gcn::ActionEvent &event)
diff --git a/src/gui/table.cpp b/src/gui/table.cpp
index 7d0fd48a..b2571495 100644
--- a/src/gui/table.cpp
+++ b/src/gui/table.cpp
@@ -99,7 +99,6 @@ GuiTable::GuiTable(TableModel *initial_model, gcn::Color background,
GuiTable::~GuiTable(void)
{
- uninstallActionListeners();
delete mModel;
}
diff --git a/src/gui/window.cpp b/src/gui/window.cpp
index b0bf1c59..bf1ec01c 100644
--- a/src/gui/window.cpp
+++ b/src/gui/window.cpp
@@ -130,8 +130,6 @@ Window::~Window()
delete(w);
}
- removeWidgetListener(this);
-
instances--;
// Clean up static resources
diff --git a/src/main.cpp b/src/main.cpp
index a43544bc..f7468d84 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1015,6 +1015,7 @@ int main(int argc, char *argv[])
delete progressBar;
delete progressLabel;
delete setup;
+ delete setupWindow;
progressBar = NULL;
progressLabel = NULL;
currentDialog = NULL;
diff --git a/src/player_relations.cpp b/src/player_relations.cpp
index 65219626..1c1ba669 100644
--- a/src/player_relations.cpp
+++ b/src/player_relations.cpp
@@ -29,8 +29,6 @@
#include "player.h"
#include "player_relations.h"
-#include "utils/dtor.h"
-
#define PLAYER_IGNORE_STRATEGY_NOP "nop"
#define PLAYER_IGNORE_STRATEGY_EMOTE0 "emote0"
#define DEFAULT_IGNORE_STRATEGY PLAYER_IGNORE_STRATEGY_EMOTE0
@@ -40,6 +38,7 @@
#define IGNORE_EMOTE_TIME 100
+
// (De)serialisation class
class PlayerConfSerialiser : public ConfigurationListManager<std::pair<std::string, PlayerRelation *>,
std::map<std::string, PlayerRelation *> *>
@@ -94,11 +93,6 @@ PlayerRelationsManager::PlayerRelationsManager() :
{
}
-PlayerRelationsManager::~PlayerRelationsManager()
-{
- delete_all(mIgnoreStrategies);
-}
-
void PlayerRelationsManager::clear()
{
std::vector<std::string> *names = getPlayers();
@@ -352,22 +346,24 @@ private:
+static std::vector<PlayerIgnoreStrategy *> player_ignore_strategies;
+
std::vector<PlayerIgnoreStrategy *> *
PlayerRelationsManager::getPlayerIgnoreStrategies()
{
- if (mIgnoreStrategies.size() == 0) {
+ if (player_ignore_strategies.size() == 0) {
// not initialised yet?
- mIgnoreStrategies.push_back(new PIS_emote(FIRST_IGNORE_EMOTE,
+ player_ignore_strategies.push_back(new PIS_emote(FIRST_IGNORE_EMOTE,
"floating '...' bubble",
PLAYER_IGNORE_STRATEGY_EMOTE0));
- mIgnoreStrategies.push_back(new PIS_emote(FIRST_IGNORE_EMOTE + 1,
+ player_ignore_strategies.push_back(new PIS_emote(FIRST_IGNORE_EMOTE + 1,
"floating bubble",
"emote1"));
- mIgnoreStrategies.push_back(new PIS_nothing());
- mIgnoreStrategies.push_back(new PIS_dotdotdot());
- mIgnoreStrategies.push_back(new PIS_blinkname());
+ player_ignore_strategies.push_back(new PIS_nothing());
+ player_ignore_strategies.push_back(new PIS_dotdotdot());
+ player_ignore_strategies.push_back(new PIS_blinkname());
}
- return &mIgnoreStrategies;
+ return &player_ignore_strategies;
}
diff --git a/src/player_relations.h b/src/player_relations.h
index edfa9b28..0440cace 100644
--- a/src/player_relations.h
+++ b/src/player_relations.h
@@ -95,7 +95,6 @@ class PlayerRelationsManager
{
public:
PlayerRelationsManager();
- ~PlayerRelationsManager();
/**
* Initialise player relations manager (load config file etc.)
@@ -234,7 +233,6 @@ private:
PlayerIgnoreStrategy *mIgnoreStrategy;
std::map<std::string, PlayerRelation *> mRelations;
std::list<PlayerRelationsListener *> mListeners;
- std::vector<PlayerIgnoreStrategy *> mIgnoreStrategies;
};