|
@@ -227,7 +227,10 @@ void Area::_clear_monitoring() {
|
|
|
|
|
|
Object *obj = ObjectDB::get_instance(E->key());
|
|
Object *obj = ObjectDB::get_instance(E->key());
|
|
Node *node = obj ? obj->cast_to<Node>() : NULL;
|
|
Node *node = obj ? obj->cast_to<Node>() : NULL;
|
|
- ERR_CONTINUE(!node);
|
|
|
|
|
|
+
|
|
|
|
+ if (!node) //node may have been deleted in previous frame or at other legiminate point
|
|
|
|
+ continue;
|
|
|
|
+ //ERR_CONTINUE(!node);
|
|
|
|
|
|
node->disconnect(SceneStringNames::get_singleton()->enter_tree, this, SceneStringNames::get_singleton()->_body_enter_tree);
|
|
node->disconnect(SceneStringNames::get_singleton()->enter_tree, this, SceneStringNames::get_singleton()->_body_enter_tree);
|
|
node->disconnect(SceneStringNames::get_singleton()->exit_tree, this, SceneStringNames::get_singleton()->_body_exit_tree);
|
|
node->disconnect(SceneStringNames::get_singleton()->exit_tree, this, SceneStringNames::get_singleton()->_body_exit_tree);
|
|
@@ -254,7 +257,10 @@ void Area::_clear_monitoring() {
|
|
|
|
|
|
Object *obj = ObjectDB::get_instance(E->key());
|
|
Object *obj = ObjectDB::get_instance(E->key());
|
|
Node *node = obj ? obj->cast_to<Node>() : NULL;
|
|
Node *node = obj ? obj->cast_to<Node>() : NULL;
|
|
- ERR_CONTINUE(!node);
|
|
|
|
|
|
+
|
|
|
|
+ if (!node) //node may have been deleted in previous frame or at other legiminate point
|
|
|
|
+ continue;
|
|
|
|
+ //ERR_CONTINUE(!node);
|
|
|
|
|
|
node->disconnect(SceneStringNames::get_singleton()->enter_tree, this, SceneStringNames::get_singleton()->_area_enter_tree);
|
|
node->disconnect(SceneStringNames::get_singleton()->enter_tree, this, SceneStringNames::get_singleton()->_area_enter_tree);
|
|
node->disconnect(SceneStringNames::get_singleton()->exit_tree, this, SceneStringNames::get_singleton()->_area_exit_tree);
|
|
node->disconnect(SceneStringNames::get_singleton()->exit_tree, this, SceneStringNames::get_singleton()->_area_exit_tree);
|