fix for crash when setting a shapekeys name in rna, (probably other properties too).
[blender.git] / source / blender / makesrna / intern / rna_object_api.c
index 9426b9c9eb3f5e3737e6288da5c0e89345de850b..8379ae7995da01cff15005883a1af701bcb19bab 100644 (file)
@@ -310,19 +310,23 @@ static Object *rna_Object_find_armature(Object *ob)
        return ob_arm;
 }
 
-static KeyBlock *rna_Object_add_shape_key(Object *ob, bContext *C, ReportList *reports, char *name, int from_mix)
+static PointerRNA rna_Object_add_shape_key(Object *ob, bContext *C, ReportList *reports, char *name, int from_mix)
 {
        Scene *scene= CTX_data_scene(C);
        KeyBlock *kb= NULL;
 
        if((kb=object_insert_shape_key(scene, ob, name, from_mix))) {
+               PointerRNA keyptr;
+
+               RNA_pointer_create((ID *)ob->data, &RNA_ShapeKey, kb, &keyptr);
                WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+               
+               return keyptr;
        }
        else {
                BKE_reportf(reports, RPT_ERROR, "Object \"%s\"does not support shapes.", ob->id.name+2);
+               return PointerRNA_NULL;
        }
-
-       return kb;
 }
 
 int rna_Object_is_visible(Object *ob, bContext *C)
@@ -476,6 +480,7 @@ void RNA_api_object(StructRNA *srna)
        parm= RNA_def_string(func, "name", "Key", 0, "", "Unique name for the new keylock."); /* optional */
        parm= RNA_def_boolean(func, "from_mix", 1, "", "Create new shape from existing mix of shapes.");
        parm= RNA_def_pointer(func, "key", "ShapeKey", "", "New shape keyblock.");
+       RNA_def_property_flag(parm, PROP_RNAPTR);
        RNA_def_function_return(func, parm);
 
        /* Ray Cast */