diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2005-09-23 23:47:32 +0000 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2005-09-23 23:47:32 +0000 |
commit | 7ca971f04907031b80ffbcb159e5af2f595e3af8 (patch) | |
tree | c7f0f210325acb35f63071797407d266ba7e9e35 /src/resources/itemmanager.cpp | |
parent | c3d7827d18b725d2dff94e08a17474d607bb43dd (diff) | |
download | mana-7ca971f04907031b80ffbcb159e5af2f595e3af8.tar.gz mana-7ca971f04907031b80ffbcb159e5af2f595e3af8.tar.bz2 mana-7ca971f04907031b80ffbcb159e5af2f595e3af8.tar.xz mana-7ca971f04907031b80ffbcb159e5af2f595e3af8.zip |
Merged most of the changes in biggeruniverse's second memory cleanup patch.
Diffstat (limited to 'src/resources/itemmanager.cpp')
-rw-r--r-- | src/resources/itemmanager.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/resources/itemmanager.cpp b/src/resources/itemmanager.cpp index 7d9c5ef5..caa26f5b 100644 --- a/src/resources/itemmanager.cpp +++ b/src/resources/itemmanager.cpp @@ -42,12 +42,16 @@ ItemManager::ItemManager() xmlDocPtr doc = xmlParseMemory(data, size); free(data); - if (doc) { + if (doc) + { xmlNodePtr node = xmlDocGetRootElement(doc); - if (!node || !xmlStrEqual(node->name, BAD_CAST "items")) { + if (!node || !xmlStrEqual(node->name, BAD_CAST "items")) + { logger->error("items.xml is not a valid database file!"); - } else { + } + else + { for (node = node->xmlChildrenNode; node != NULL; node = node->next) { if (xmlStrEqual(node->name, BAD_CAST "item")) @@ -112,6 +116,14 @@ ItemManager::ItemManager() ItemManager::~ItemManager() { + std::map<int, ItemInfo*>::iterator i; + for (i = db.begin(); i != db.end(); i++) + { + delete (*i).second; + } + db.clear(); + + delete unknown; } ItemInfo *ItemManager::getItemInfo(int id) |