From e6141d7b3be8520e030de7b9e57264a76aeb588d Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 4 Dec 2018 12:11:25 +0100 Subject: Fix T58117: Crash with keyframing, take two More operators need to become aware of action possibly being gone. --- source/blender/editors/animation/keyframing.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c index 9faa7a8e8cd..254569a345a 100644 --- a/source/blender/editors/animation/keyframing.c +++ b/source/blender/editors/animation/keyframing.c @@ -1302,7 +1302,13 @@ short delete_keyframe(Main *bmain, ReportList *reports, ID *id, bAction *act, ret += delete_keyframe_fcurve(adt, fcu, cfra); } - + /* In the case last f-curve wes removed need to inform dependency graph + * about relations update, since it needs to get rid of animation operation + * for this datablock. */ + if (ret && adt->action == NULL) { + DEG_id_tag_update_ex(bmain, id, DEG_TAG_COPY_ON_WRITE); + DEG_relations_tag_update(bmain); + } /* return success/failure */ return ret; } @@ -1395,7 +1401,8 @@ static short clear_keyframe(Main *bmain, ReportList *reports, ID *id, bAction *a /* In the case last f-curve wes removed need to inform dependency graph * about relations update, since it needs to get rid of animation operation * for this datablock. */ - if (adt->action == NULL) { + if (ret && adt->action == NULL) { + DEG_id_tag_update_ex(bmain, id, DEG_TAG_COPY_ON_WRITE); DEG_relations_tag_update(bmain); } /* return success/failure */ -- cgit v1.2.3