Fix segfault caused by a8e238ed06ee8285ed4459e9deda3117419837f6
authorPerttu Ahola <celeron55@gmail.com>
Thu, 13 Aug 2015 16:02:48 +0000 (19:02 +0300)
committerPerttu Ahola <celeron55@gmail.com>
Thu, 13 Aug 2015 16:02:48 +0000 (19:02 +0300)
src/map.cpp

index 38a700e3c9f6ee06c06cef454328da8bd01ced8f..76a558d43cebf90f90ae8fd02714ffe61c1d2ac2 100644 (file)
@@ -1499,8 +1499,8 @@ void Map::timerUpdate(float dtime, float unload_timeout, u32 max_loaded_blocks,
                }
                block_count_all = mapblock_queue.size();
                // Delete old blocks, and blocks over the limit from the memory
-               while (mapblock_queue.size() > max_loaded_blocks
-                               || mapblock_queue.top().block->getUsageTimer() > unload_timeout) {
+               while (!mapblock_queue.empty() && (mapblock_queue.size() > max_loaded_blocks
+                               || mapblock_queue.top().block->getUsageTimer() > unload_timeout)) {
                        TimeOrderedMapBlock b = mapblock_queue.top();
                        mapblock_queue.pop();