summaryrefslogtreecommitdiff
path: root/src/resources/mapreader.cpp
diff options
context:
space:
mode:
authorEugenio Favalli <elvenprogrammer@gmail.com>2005-09-18 20:22:07 +0000
committerEugenio Favalli <elvenprogrammer@gmail.com>2005-09-18 20:22:07 +0000
commit89dbeaaee05a6ce7adc353f5676df211c1ed83fb (patch)
tree3f18e18af0248ae555d90f48f0217d3c5371505a /src/resources/mapreader.cpp
parent761c274a741869ef767d0db2cd8ef0eca149ce3d (diff)
downloadmana-89dbeaaee05a6ce7adc353f5676df211c1ed83fb.tar.gz
mana-89dbeaaee05a6ce7adc353f5676df211c1ed83fb.tar.bz2
mana-89dbeaaee05a6ce7adc353f5676df211c1ed83fb.tar.xz
mana-89dbeaaee05a6ce7adc353f5676df211c1ed83fb.zip
Applyed biggeruniverse's patch to fix memory leaks.
Diffstat (limited to 'src/resources/mapreader.cpp')
-rw-r--r--src/resources/mapreader.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp
index 5e83f34f..b5b1a142 100644
--- a/src/resources/mapreader.cpp
+++ b/src/resources/mapreader.cpp
@@ -129,6 +129,7 @@ Map *MapReader::readMap(const std::string &filename)
ResourceManager *resman = ResourceManager::getInstance();
int fileSize;
void *buffer = resman->loadFile(filename, fileSize);
+ Map *map = NULL;
if (buffer == NULL)
{
@@ -175,14 +176,16 @@ Map *MapReader::readMap(const std::string &filename)
logger->log("Error: Not a map file (%s)!", filename.c_str());
return NULL;
}
-
- return readMap(node, filename);
+ else
+ {
+ map = readMap(node, filename);
+ }
xmlFreeDoc(doc);
} else {
logger->log("Error while parsing map file (%s)!", filename.c_str());
}
- return NULL;
+ return map;
}
Map* MapReader::readMap(xmlNodePtr node, const std::string &path)