diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-06-24 18:41:42 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-06-25 22:08:24 +0300 |
commit | d49a520d19f28c613c68b574686b182a9c0621be (patch) | |
tree | 5b6943125fd364eaaaaa295b45100cdfc473dd93 /src/resources/mapreader.cpp | |
parent | 14f55eb8c6e44763e70046b9661bd056280226a5 (diff) | |
download | manaplus-d49a520d19f28c613c68b574686b182a9c0621be.tar.gz manaplus-d49a520d19f28c613c68b574686b182a9c0621be.tar.bz2 manaplus-d49a520d19f28c613c68b574686b182a9c0621be.tar.xz manaplus-d49a520d19f28c613c68b574686b182a9c0621be.zip |
Add missing checks into resources directory.
Diffstat (limited to 'src/resources/mapreader.cpp')
-rw-r--r-- | src/resources/mapreader.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp index 825be9a25..414a19d24 100644 --- a/src/resources/mapreader.cpp +++ b/src/resources/mapreader.cpp @@ -491,10 +491,19 @@ void MapReader::readProperties(const XmlNodePtrConst node, BLOCK_END("MapReader::readProperties") } -inline static void setTile(Map *const map, MapLayer *const layer, +inline static void setTile(Map *const map, + MapLayer *const layer, const MapLayer::Type &layerType, MapHeights *const heights, - const int x, const int y, const int gid) + const int x, const int y, + const int gid) A_NONNULL(1, 2, 4); + +inline static void setTile(Map *const map, + MapLayer *const layer, + const MapLayer::Type &layerType, + MapHeights *const heights, + const int x, const int y, + const int gid) { const Tileset * const set = map->getTilesetWithGid(gid); switch (layerType) @@ -588,6 +597,9 @@ bool MapReader::readBase64Layer(const XmlNodePtrConst childNode, int &restrict x, int &restrict y, const int w, const int h) { + if (!map || !layer || !childNode) + return false; + if (!compression.empty() && compression != "gzip" && compression != "zlib") { @@ -690,6 +702,9 @@ bool MapReader::readCsvLayer(const XmlNodePtrConst childNode, int &restrict x, int &restrict y, const int w, const int h) { + if (!map || !layer || !childNode) + return false; + XmlNodePtrConst dataChild = childNode->xmlChildrenNode; if (!dataChild) return true; @@ -733,6 +748,9 @@ bool MapReader::readCsvLayer(const XmlNodePtrConst childNode, void MapReader::readLayer(const XmlNodePtr node, Map *const map) { + if (!map || !node) + return; + // Layers are not necessarily the same size as the map const int w = XML::getProperty(node, "width", map->getWidth()); const int h = XML::getProperty(node, "height", map->getHeight()); @@ -878,7 +896,7 @@ Tileset *MapReader::readTileset(XmlNodePtr node, Map *const map) { BLOCK_START("MapReader::readTileset") - if (!map) + if (!map || !node) { BLOCK_END("MapReader::readTileset") return nullptr; @@ -1072,6 +1090,8 @@ Map *MapReader::createEmptyMap(const std::string &restrict filename, void MapReader::updateMusic(Map *const map) { + if (!map) + return; std::string name = map->getProperty("shortName"); const size_t p = name.rfind("."); if (p != std::string::npos) |