Blender Git Loki
Git Commits -> Revision afa3c66
Revision afa3c66 by Sybren A. Stüvel (lineart-shadow) July 13, 2021, 08:41 (GMT) |
Fix T89435: Reordering FCurves can cause crash or corruption Correctly reset `prev` and `next` pointers of action group FCurves when separating them into distinct `ListBase`s per `bActionGroup`. These `NULL` pointers are necessary to temporarily demarcate the start & end of the `bActionGroup::channels` list. Having them still point to other FCurves caused ordering issues when moving curves towards the start/end of a group. This commit corrects the above issue and adds versioning code to rectify any ordering issues that may have been caused. For this purpose the `BKE_action_groups_reconstruct()` function is rewritten to avoid relying on the `bAction::curves` list order or `prev` link integrity. Differential Revision: https://developer.blender.org/D11811 |
Commit Details:
Full Hash: afa3c66668debdc5b31707dbb8da39c5460acebe
Parent Commit: 454f410
Committed By: YimingWu
Lines Changed: +192, -40
1 Added Path:
/source/blender/blenkernel/intern/action_test.cc (+144, -0) (View)
5 Modified Paths:
/source/blender/blenkernel/BKE_blender_version.h (+1, -1) (Diff)
/source/blender/blenkernel/CMakeLists.txt (+1, -0) (Diff)
/source/blender/blenkernel/intern/action.c (+22, -16) (Diff)
/source/blender/blenloader/intern/versioning_300.c (+21, -11) (Diff)
/source/blender/editors/animation/anim_channels_edit.c (+3, -12) (Diff)
/source/blender/blenkernel/CMakeLists.txt (+1, -0) (Diff)
/source/blender/blenkernel/intern/action.c (+22, -16) (Diff)
/source/blender/blenloader/intern/versioning_300.c (+21, -11) (Diff)
/source/blender/editors/animation/anim_channels_edit.c (+3, -12) (Diff)