mirror of
https://projects.blender.org/blender/blender.git
synced 2025-01-22 15:32:15 -05:00
5ee7d02840
Fixes #91369, where a pointer to a deleted btTypedConstraint instance was being dereferenced, causing a crash. What was happening was: 1. When the animation starts the first time, BKE_rigidbody_rebuild_sim eventually calls btDiscreteDynamicsWorld::addConstraint, which in turn will store a pointer to the btTypedConstraint in btRigidBody::m_constraintRefs for each body in the constraint 2. When undoing, the btDynamicsWorld is deleted, then the Object containing the btTypedConstraint (taking the btTypedConstraint with it) - however, the pointer to the btTypedConstraint is still in the btRigidBody! 3. When playing the animation a second time, rigidbody_update_simulation will rebuild the simulation, which causes RB_body_delete to be called, which iterates over all the body's m_constraintRefs and dereferences the deleted pointer. Co-authored-by: Eoin Mcloughlin <hkeoin@eoinrul.es> Pull Request: https://projects.blender.org/blender/blender/pulls/126079 |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
rb_bullet_api.cpp | ||
rb_convex_hull_api.cpp | ||
RBI_api.h | ||
RBI_hull_api.h |