From 9a93713f645e43f795ffeffb3ef0435a86d3a74c Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 14 Jul 2010 11:03:07 +0000 Subject: Bugfix #22792: Blender crashes after inserting keyframe pressing "I" key Insert Keyframe function was not checking that an ID-block was given before trying to resolve the RNA-path using it. --- source/blender/editors/animation/keyframing.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'source/blender/editors') diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c index 882fb3e91dc..f60181d7f6c 100644 --- a/source/blender/editors/animation/keyframing.c +++ b/source/blender/editors/animation/keyframing.c @@ -817,15 +817,21 @@ short insert_keyframe_direct (PointerRNA ptr, PropertyRNA *prop, FCurve *fcu, fl short insert_keyframe (ID *id, bAction *act, const char group[], const char rna_path[], int array_index, float cfra, short flag) { PointerRNA id_ptr, ptr; - PropertyRNA *prop; + PropertyRNA *prop = NULL; FCurve *fcu; int array_index_max= array_index+1; int ret= 0; /* validate pointer first - exit if failure */ + if (id == NULL) { + printf("Insert Key: no ID-block to insert keyframe in (Path = %s) \n", rna_path); + return 0; + } + RNA_id_pointer_create(id, &id_ptr); if ((RNA_path_resolve(&id_ptr, rna_path, &ptr, &prop) == 0) || (prop == NULL)) { - printf("Insert Key: Could not insert keyframe, as RNA Path is invalid for the given ID (ID = %s, Path = %s)\n", id->name, rna_path); + printf("Insert Key: Could not insert keyframe, as RNA Path is invalid for the given ID (ID = %s, Path = %s)\n", + (id)? id->name : "", rna_path); return 0; } @@ -922,7 +928,7 @@ short delete_keyframe (ID *id, bAction *act, const char group[], const char rna_ if ELEM(NULL, id, adt) { printf("ERROR: no ID-block and/or AnimData to delete keyframe from \n"); return 0; - } + } /* validate pointer first - exit if failure */ RNA_id_pointer_create(id, &id_ptr); -- cgit v1.2.3