diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-04-04 08:56:05 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-04-04 08:56:05 +0400 |
commit | c31f806c99e14ef54a06ea90f0f66d4d1b2572a1 (patch) | |
tree | b1ba49579f5db598fac87343c8f3b3afaade55d7 /extern | |
parent | 6be69211843ee37ab9be763df0621db94dbfd69b (diff) |
fix for [#18484] Bullet Crash (possibly because of overlapping rigid body balls)
simple missing negative index check.
Diffstat (limited to 'extern')
-rw-r--r-- | extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
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()); + } + } } } |