summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2012-01-13 22:24:59 +0300
committerAndrei Karas <akaras@inbox.ru>2012-01-13 23:15:55 +0300
commitbf1a006a34ba30143c00be899332acedef29575b (patch)
tree996b3d75d1dd4903b3377d2f9e822b6937d45511
parentd9c0a036a5d480c615d866bf98893906b1e7efab (diff)
downloadplus-bf1a006a34ba30143c00be899332acedef29575b.tar.gz
plus-bf1a006a34ba30143c00be899332acedef29575b.tar.bz2
plus-bf1a006a34ba30143c00be899332acedef29575b.tar.xz
plus-bf1a006a34ba30143c00be899332acedef29575b.zip
Fix possible incorrect memory access.
-rw-r--r--src/gui/socialwindow.cpp2
-rw-r--r--src/map.cpp3
-rw-r--r--src/map.h3
3 files changed, 7 insertions, 1 deletions
diff --git a/src/gui/socialwindow.cpp b/src/gui/socialwindow.cpp
index 2d8ecc54f..b2c28e84e 100644
--- a/src/gui/socialwindow.cpp
+++ b/src/gui/socialwindow.cpp
@@ -650,7 +650,7 @@ public:
return;
Map* map = socialWindow->getMap();
- if (!map)
+ if (!map || map->empty())
return;
if (socialWindow->getProcessedPortals())
diff --git a/src/map.cpp b/src/map.cpp
index 63b815af2..211504504 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -1392,6 +1392,9 @@ Path Map::findPath(int startX, int startY, int destX, int destY,
// Reset starting tile's G cost to 0
MetaTile *startTile = &mMetaTiles[startX + startY * mWidth];
+ if (!startTile)
+ return path;
+
startTile->Gcost = 0;
// Add the start point to the open list
diff --git a/src/map.h b/src/map.h
index 0f2f2bf47..db8b092de 100644
--- a/src/map.h
+++ b/src/map.h
@@ -498,6 +498,9 @@ class Map : public Properties, public ConfigListener
void redrawMap();
+ bool empty()
+ { return mLayers.empty(); }
+
protected:
friend class Actor;
friend class Minimap;