src/environment.cpp: Fix NULL pointer dereference

This commit is contained in:
Břetislav Štec 2015-08-01 14:07:12 +02:00
parent 3f63c499e9
commit 057ac2e696
1 changed files with 13 additions and 11 deletions

View File

@ -1820,27 +1820,29 @@ void ServerEnvironment::deactivateFarObjects(bool force_delete)
bool stays_in_same_block = false; bool stays_in_same_block = false;
bool data_changed = true; bool data_changed = true;
if(obj->m_static_exists){ if (obj->m_static_exists) {
if(obj->m_static_block == blockpos_o) if (obj->m_static_block == blockpos_o)
stays_in_same_block = true; stays_in_same_block = true;
MapBlock *block = m_map->emergeBlock(obj->m_static_block, false); 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); block->m_static_objects.m_active.find(id);
if(n != block->m_static_objects.m_active.end()){ if (n != block->m_static_objects.m_active.end()) {
StaticObject static_old = n->second; StaticObject static_old = n->second;
float save_movem = obj->getMinimumSavedMovement(); float save_movem = obj->getMinimumSavedMovement();
if(static_old.data == staticdata_new && if (static_old.data == staticdata_new &&
(static_old.pos - objectpos).getLength() < save_movem) (static_old.pos - objectpos).getLength() < save_movem)
data_changed = false; data_changed = false;
} else { } else {
errorstream<<"ServerEnvironment::deactivateFarObjects(): " errorstream<<"ServerEnvironment::deactivateFarObjects(): "
<<"id="<<id<<" m_static_exists=true but " <<"id="<<id<<" m_static_exists=true but "
<<"static data doesn't actually exist in " <<"static data doesn't actually exist in "
<<PP(obj->m_static_block)<<std::endl; <<PP(obj->m_static_block)<<std::endl;
}
} }
} }