diff options
author | Břetislav Štec <valsiterb@gmail.com> | 2015-08-01 14:07:12 +0200 |
---|---|---|
committer | est31 <MTest31@outlook.com> | 2015-08-01 20:44:18 +0200 |
commit | 67997af67fbf7c95e78574f810aa322275b3eb66 (patch) | |
tree | 49bb0f5c6be50119ba4048155eb4b06985671b33 | |
parent | 79e2647556773d46cc0299e73ca23c41a153ff2a (diff) | |
download | minetest-67997af67fbf7c95e78574f810aa322275b3eb66.tar.gz minetest-67997af67fbf7c95e78574f810aa322275b3eb66.tar.bz2 minetest-67997af67fbf7c95e78574f810aa322275b3eb66.zip |
src/environment.cpp: Fix NULL pointer dereference
-rw-r--r-- | src/environment.cpp | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/environment.cpp b/src/environment.cpp index cf0ebacfd..5bed11476 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -1820,27 +1820,29 @@ void ServerEnvironment::deactivateFarObjects(bool force_delete) bool stays_in_same_block = false; bool data_changed = true; - if(obj->m_static_exists){ - if(obj->m_static_block == blockpos_o) + if (obj->m_static_exists) { + if (obj->m_static_block == blockpos_o) stays_in_same_block = true; MapBlock *block = m_map->emergeBlock(obj->m_static_block, false); - std::map<u16, StaticObject>::iterator n = + if (block) { + std::map<u16, StaticObject>::iterator n = block->m_static_objects.m_active.find(id); - if(n != block->m_static_objects.m_active.end()){ - StaticObject static_old = n->second; + if (n != block->m_static_objects.m_active.end()) { + StaticObject static_old = n->second; - float save_movem = obj->getMinimumSavedMovement(); + float save_movem = obj->getMinimumSavedMovement(); - if(static_old.data == staticdata_new && - (static_old.pos - objectpos).getLength() < save_movem) - data_changed = false; - } else { - errorstream<<"ServerEnvironment::deactivateFarObjects(): " + if (static_old.data == staticdata_new && + (static_old.pos - objectpos).getLength() < save_movem) + data_changed = false; + } else { + errorstream<<"ServerEnvironment::deactivateFarObjects(): " <<"id="<<id<<" m_static_exists=true but " <<"static data doesn't actually exist in " <<PP(obj->m_static_block)<<std::endl; + } } } |