Remove node from list before calling queries, fixes #10886

This commit is contained in:
Juan Linietsky 2017-11-10 08:31:25 -03:00
parent fd4921375a
commit 4deac219b0
2 changed files with 3 additions and 3 deletions

View file

@ -969,15 +969,15 @@ void Space2DSW::call_queries() {
while (state_query_list.first()) { while (state_query_list.first()) {
Body2DSW *b = state_query_list.first()->self(); Body2DSW *b = state_query_list.first()->self();
b->call_queries();
state_query_list.remove(state_query_list.first()); state_query_list.remove(state_query_list.first());
b->call_queries();
} }
while (monitor_query_list.first()) { while (monitor_query_list.first()) {
Area2DSW *a = monitor_query_list.first()->self(); Area2DSW *a = monitor_query_list.first()->self();
a->call_queries();
monitor_query_list.remove(monitor_query_list.first()); monitor_query_list.remove(monitor_query_list.first());
a->call_queries();
} }
} }

View file

@ -529,7 +529,7 @@ void Physics2DServer::_bind_methods() {
ClassDB::bind_method(D_METHOD("area_set_monitor_callback", "area", "receiver", "method"), &Physics2DServer::area_set_monitor_callback); ClassDB::bind_method(D_METHOD("area_set_monitor_callback", "area", "receiver", "method"), &Physics2DServer::area_set_monitor_callback);
ClassDB::bind_method(D_METHOD("body_create", "mode", "init_sleeping"), &Physics2DServer::body_create, DEFVAL(BODY_MODE_RIGID), DEFVAL(false)); ClassDB::bind_method(D_METHOD("body_create"), &Physics2DServer::body_create);
ClassDB::bind_method(D_METHOD("body_set_space", "body", "space"), &Physics2DServer::body_set_space); ClassDB::bind_method(D_METHOD("body_set_space", "body", "space"), &Physics2DServer::body_set_space);
ClassDB::bind_method(D_METHOD("body_get_space", "body"), &Physics2DServer::body_get_space); ClassDB::bind_method(D_METHOD("body_get_space", "body"), &Physics2DServer::body_get_space);