Blender Git Loki
Git Commits -> Revision c04cceb
Revision c04cceb by Sybren A. Stüvel (master) July 9, 2021, 09:21 (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: c04cceb40ed5574dcba8a55cfe97a1132c869895
Parent Commit: b69ab42
Committed By: Alexander Gavrilov
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)