Fix freeze on close of game using 2D physics introduced by #9832

Additionally, port the fix to 3D physics, just in case
This commit is contained in:
Bojidar Marinov 2017-08-08 23:17:11 +03:00
parent 1939e83a65
commit fe1c3349e5
No known key found for this signature in database
GPG key ID: 4D546A8F1E091856
2 changed files with 4 additions and 4 deletions

View file

@ -493,8 +493,8 @@ void PhysicsServerSW::body_set_space(RID p_body, RID p_space) {
if (body->get_space() == space)
return; //pointless
while (body->get_constraint_map().size()) {
RID self = body->get_constraint_map().front()->key()->get_self();
for (Map<ConstraintSW *, int>::Element *E = body->get_constraint_map().front(); E; E = E->next()) {
RID self = E->key()->get_self();
if (!self.is_valid())
continue;
free(self);

View file

@ -548,8 +548,8 @@ void Physics2DServerSW::body_set_space(RID p_body, RID p_space) {
if (body->get_space() == space)
return; //pointless
while (body->get_constraint_map().size()) {
RID self = body->get_constraint_map().front()->key()->get_self();
for (Map<Constraint2DSW *, int>::Element *E = body->get_constraint_map().front(); E; E = E->next()) {
RID self = E->key()->get_self();
if (!self.is_valid())
continue;
free(self);