Blender Git Loki
Git Commits -> Revision dfb963c
Revision dfb963c by Campbell Barton (master) May 18, 2021, 03:35 (GMT) |
Fix T88026: Repeated switch to rendered viewport crashes Resolve ownership ambiguity with shared physics pointers. Previously, LIB_ID_CREATE_NO_MAIN allowed pointer sharing with the source ID so physics caches can be shared between original and evaluated data: (Object.soft.shared & Object.rigidbody_object.shared). This only worked properly for LIB_TAG_COPIED_ON_WRITE ID's, as LIB_TAG_NO_MAIN can be used in situations where the original ID's lifetime limited by it's original data. This commit adds `LIB_ID_COPY_SET_COPIED_ON_WRITE` so ID's only share memory with original data for ID's evaluated in the depsgraph. For all other uses, a full copy of physics data is made. Ref D11228#287094 |
Commit Details:
Full Hash: dfb963c70df515213c452094c20c83720bc017ee
Parent Commit: cdc1ddf
Lines Changed: +28, -6
6 Modified Paths:
/source/blender/blenkernel/BKE_lib_id.h (+4, -0) (Diff)
/source/blender/blenkernel/intern/lib_id.c (+7, -0) (Diff)
/source/blender/blenkernel/intern/object.c (+2, -2) (Diff)
/source/blender/blenkernel/intern/rigidbody.c (+3, -1) (Diff)
/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc (+4, -2) (Diff)
/source/blender/makesdna/DNA_ID.h (+8, -1) (Diff)
/source/blender/blenkernel/intern/lib_id.c (+7, -0) (Diff)
/source/blender/blenkernel/intern/object.c (+2, -2) (Diff)
/source/blender/blenkernel/intern/rigidbody.c (+3, -1) (Diff)
/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc (+4, -2) (Diff)
/source/blender/makesdna/DNA_ID.h (+8, -1) (Diff)