diff options
author | Campbell Barton <ideasman42@gmail.com> | 2020-09-14 11:25:54 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-09-14 11:25:54 +0300 |
commit | f28adaef520c85ab1ea8bc1fb149045a38967431 (patch) | |
tree | 570b77497e0b0471a3ba789aa2f8ad15b9dd100e /source/blender/makesrna/intern/rna_object.c | |
parent | 14b0f203744027451533f563c5d7373b73e070e0 (diff) |
Fix T80747: New vgroups on unsupported object types fails silently
Raise an exceptions when adding vertex groups to object types
that don't support it.
Diffstat (limited to 'source/blender/makesrna/intern/rna_object.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_object.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index c7f625e2fa5..77200ce7eda 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -1828,8 +1828,19 @@ static void rna_Object_boundbox_get(PointerRNA *ptr, float *values) } } -static bDeformGroup *rna_Object_vgroup_new(Object *ob, Main *bmain, const char *name) -{ +static bDeformGroup *rna_Object_vgroup_new(Object *ob, + Main *bmain, + ReportList *reports, + const char *name) +{ + if (!OB_TYPE_SUPPORT_VGROUP(ob->type)) { + const char *ob_type_name = "Unknown"; + RNA_enum_name_from_value(rna_enum_object_type_items, ob->type, &ob_type_name); + BKE_reportf( + reports, RPT_ERROR, "VertexGroups.new(): is not supported for '%s' objects", ob_type_name); + return NULL; + } + bDeformGroup *defgroup = BKE_object_defgroup_add_name(ob, name); DEG_relations_tag_update(bmain); @@ -2489,7 +2500,7 @@ static void rna_def_object_vertex_groups(BlenderRNA *brna, PropertyRNA *cprop) /* vertex groups */ /* add_vertex_group */ func = RNA_def_function(srna, "new", "rna_Object_vgroup_new"); - RNA_def_function_flag(func, FUNC_USE_MAIN); + RNA_def_function_flag(func, FUNC_USE_MAIN | FUNC_USE_REPORTS); RNA_def_function_ui_description(func, "Add vertex group to object"); RNA_def_string(func, "name", "Group", 0, "", "Vertex group name"); /* optional */ parm = RNA_def_pointer(func, "group", "VertexGroup", "", "New vertex group"); |