aboutsummaryrefslogtreecommitdiff
path: root/src/geometry
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2021-04-03 15:26:38 +0200
committerGitHub <noreply@github.com>2021-04-03 15:26:38 +0200
commit44a6955debf1c625c0674673bd0f98bb6340048a (patch)
treee15591653a7792a8a2e92562c87a69fdb65e6cbf /src/geometry
parent7557d2a6ee20488835998c8aef4541ed5ada576f (diff)
parent54927368634068f99c4d47e7c5799edba10633a6 (diff)
downloadrapier-44a6955debf1c625c0674673bd0f98bb6340048a.tar.gz
rapier-44a6955debf1c625c0674673bd0f98bb6340048a.tar.bz2
rapier-44a6955debf1c625c0674673bd0f98bb6340048a.zip
Merge pull request #164 from dimforge/collider_removal_fix
Fix crash caused by a collider being remove before the first timestep.
Diffstat (limited to 'src/geometry')
-rw-r--r--src/geometry/collider_set.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/geometry/collider_set.rs b/src/geometry/collider_set.rs
index 7af34f1..7b453a3 100644
--- a/src/geometry/collider_set.rs
+++ b/src/geometry/collider_set.rs
@@ -139,7 +139,12 @@ impl ColliderSet {
self.modified_all_colliders = false;
} else {
for handle in self.modified_colliders.drain(..) {
- self.colliders[handle.0].changes = ColliderChanges::empty();
+ // NOTE: if the collider was added, then removed from this set before
+ // a an update, then it will no longer exist in `self.colliders`
+ // so we need to do this `if let`.
+ if let Some(co) = self.colliders.get_mut(handle.0) {
+ co.changes = ColliderChanges::empty();
+ }
}
}
}