From 9f6c9ca636e3e0becac4fdf3805f86eb78939be9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20T=C3=B6nne?= Date: Thu, 10 Jul 2014 13:02:22 +0200 Subject: Fix for invalid memory access in graph editor when deleting the last vertex in a fcurve. --- source/blender/editors/animation/anim_deps.c | 6 ++++-- source/blender/editors/space_action/action_edit.c | 4 +++- source/blender/editors/space_graph/graph_edit.c | 1 + 3 files changed, 8 insertions(+), 3 deletions(-) (limited to 'source') diff --git a/source/blender/editors/animation/anim_deps.c b/source/blender/editors/animation/anim_deps.c index 1ca2c247ff0..640349199be 100644 --- a/source/blender/editors/animation/anim_deps.c +++ b/source/blender/editors/animation/anim_deps.c @@ -364,12 +364,14 @@ void ANIM_animdata_update(bAnimContext *ac, ListBase *anim_data) if (ale->update & ANIM_UPDATE_ORDER) { ale->update &= ~ANIM_UPDATE_ORDER; - sort_time_fcurve(fcu); + if (fcu) + sort_time_fcurve(fcu); } if (ale->update & ANIM_UPDATE_HANDLES) { ale->update &= ~ANIM_UPDATE_HANDLES; - calchandles_fcurve(fcu); + if (fcu) + calchandles_fcurve(fcu); } if (ale->update & ANIM_UPDATE_DEPS) { diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index 08dd00c08fe..091d3fe56b4 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -878,8 +878,10 @@ static bool delete_action_keys(bAnimContext *ac) changed = delete_fcurve_keys(fcu); /* Only delete curve too if it won't be doing anything anymore */ - if ((fcu->totvert == 0) && (list_has_suitable_fmodifier(&fcu->modifiers, 0, FMI_TYPE_GENERATE_CURVE) == 0)) + if ((fcu->totvert == 0) && (list_has_suitable_fmodifier(&fcu->modifiers, 0, FMI_TYPE_GENERATE_CURVE) == 0)) { ANIM_fcurve_delete_from_animdata(ac, adt, fcu); + ale->key_data = NULL; + } } if (changed) { diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c index 6ed7689a6c3..1f1aac8c456 100644 --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@ -907,6 +907,7 @@ static bool delete_graph_keys(bAnimContext *ac) (fcu->driver == NULL)) { ANIM_fcurve_delete_from_animdata(ac, adt, fcu); + ale->key_data = NULL; } } -- cgit v1.2.3