Add missing sao->isGone() checks

fixes #9883
This commit is contained in:
sfan5 2020-05-18 23:23:25 +02:00
parent 11723cffe0
commit 0fc51db772
2 changed files with 4 additions and 1 deletions

@ -397,7 +397,8 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
// we directly use the callback to populate the result to prevent // we directly use the callback to populate the result to prevent
// a useless result loop here // a useless result loop here
auto include_obj_cb = [self, &objects] (ServerActiveObject *obj) { auto include_obj_cb = [self, &objects] (ServerActiveObject *obj) {
if (!self || (self != obj && self != obj->getParent())) { if (!obj->isGone() &&
(!self || (self != obj && self != obj->getParent()))) {
objects.push_back((ActiveObject *)obj); objects.push_back((ActiveObject *)obj);
} }
return false; return false;

@ -1623,6 +1623,8 @@ void ServerEnvironment::getSelectedActiveObjects(
const v3f line_vector = shootline_on_map.getVector(); const v3f line_vector = shootline_on_map.getVector();
for (auto obj : objs) { for (auto obj : objs) {
if (obj->isGone())
continue;
aabb3f selection_box; aabb3f selection_box;
if (!obj->getSelectionBox(&selection_box)) if (!obj->getSelectionBox(&selection_box))
continue; continue;