[Bf-blender-cvs] [44ec9116337] blender-v3.4-release: Fix T99044: Dopesheet crash when accessing Key menu in Mask mode

Sergey Sharybin noreply at git.blender.org
Wed Nov 16 14:55:45 CET 2022


Commit: 44ec91163374472dc63e17eb1966d659eb9a61f2
Author: Sergey Sharybin
Date:   Mon Nov 14 16:19:11 2022 +0100
Branches: blender-v3.4-release
https://developer.blender.org/rB44ec91163374472dc63e17eb1966d659eb9a61f2

Fix T99044: Dopesheet crash when accessing Key menu in Mask mode

The `animdata_filter_mask()` was not respecting the filter flag of
`ANIMFILTER_FCURVESONLY` which lead to cases when animation system
element is effectively cast from `MaskLayer*` to `FCurve*`.

The proposed solution more closely follows the GreasePencil filtering
makes it so when `ANIMFILTER_FCURVESONLY` flag is uses no mask layer
channels will be added.

Differential Revision: https://developer.blender.org/D16498

===================================================================

M	source/blender/editors/animation/anim_filter.c

===================================================================

diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c
index 3a04873588d..0dd4eab51c3 100644
--- a/source/blender/editors/animation/anim_filter.c
+++ b/source/blender/editors/animation/anim_filter.c
@@ -2048,10 +2048,12 @@ static size_t animdata_filter_mask(Main *bmain,
     }
 
     /* add mask animation channels */
-    BEGIN_ANIMFILTER_SUBCHANNELS (EXPANDED_MASK(mask)) {
-      tmp_items += animdata_filter_mask_data(&tmp_data, mask, filter_mode);
+    if (!(filter_mode & ANIMFILTER_FCURVESONLY)) {
+      BEGIN_ANIMFILTER_SUBCHANNELS (EXPANDED_MASK(mask)) {
+        tmp_items += animdata_filter_mask_data(&tmp_data, mask, filter_mode);
+      }
+      END_ANIMFILTER_SUBCHANNELS;
     }
-    END_ANIMFILTER_SUBCHANNELS;
 
     /* did we find anything? */
     if (tmp_items) {



More information about the Bf-blender-cvs mailing list