From c31f806c99e14ef54a06ea90f0f66d4d1b2572a1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 4 Apr 2009 04:56:05 +0000 Subject: fix for [#18484] Bullet Crash (possibly because of overlapping rigid body balls) simple missing negative index check. --- .../src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'extern/bullet2') diff --git a/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp b/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp index ea2e0ad2a2b..457e26b1dc0 100644 --- a/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp +++ b/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp @@ -725,9 +725,13 @@ void btDiscreteDynamicsWorld::calculateSimulationIslands() { if (colObj0->isActive() || colObj1->isActive()) { - - getSimulationIslandManager()->getUnionFind().unite((colObj0)->getIslandTag(), - (colObj1)->getIslandTag()); + if ((colObj0)->getIslandTag() != -1 && (colObj1)->getIslandTag() != -1) + { + + getSimulationIslandManager()->getUnionFind().unite((colObj0)->getIslandTag(), + (colObj1)->getIslandTag()); + } + } } } -- cgit v1.2.3