Blender Git Commit Log

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)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021