diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-03-08 04:23:28 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-03-08 04:23:28 +0400 |
commit | 52db32bb53cf4d1b8b098238b1e896e8502027d2 (patch) | |
tree | 88465e8231b53343ac213332d988952afb42dccb /source/blender/editors/object | |
parent | 6bed106ed4b0701bdb404a87dfa0c4805dc4bb60 (diff) |
fix for 2 crashes from missing NULL checks.
Diffstat (limited to 'source/blender/editors/object')
-rw-r--r-- | source/blender/editors/object/object_vgroup.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/source/blender/editors/object/object_vgroup.c b/source/blender/editors/object/object_vgroup.c index b0a3518b03a..870221d6ec3 100644 --- a/source/blender/editors/object/object_vgroup.c +++ b/source/blender/editors/object/object_vgroup.c @@ -1257,10 +1257,9 @@ static void vgroup_blend(Object *ob) int i, dvert_tot=0; const int def_nr= ob->actdef-1; - BMEditMesh *em = BMEdit_FromObject(ob); - // ED_vgroup_give_array(ob->data, &dvert_array, &dvert_tot); + BMEditMesh *em; - if (em == NULL) { + if (ob->type == OB_MESH && ((em = BMEdit_FromObject(ob)) != NULL)) { return; } @@ -1302,10 +1301,17 @@ static void vgroup_blend(Object *ob) vg_users[i1]++; /* TODO, we may want object mode blending */ - if(em) dvert= CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); - else dvert= dvert_array+i2; +#if 0 + if (em) { + dvert = CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); + } + else +#endif + { + dvert= dvert_array+i2; + } - dw= defvert_find_index(dvert, def_nr); + dw = defvert_find_index(dvert, def_nr); if(dw) { vg_weights[i1] += dw->weight; @@ -2037,7 +2043,7 @@ static int vertex_group_poll(bContext *C) return (ob && !ob->id.lib && OB_TYPE_SUPPORT_VGROUP(ob->type) && data && !data->lib); } -static int UNUSED_FUNCTION(vertex_group_poll_edit)(bContext *C) +static int vertex_group_poll_edit(bContext *C) { Object *ob= ED_object_context(C); ID *data= (ob)? ob->data: NULL; @@ -2502,7 +2508,7 @@ void OBJECT_OT_vertex_group_blend(wmOperatorType *ot) ot->description= ""; /* api callbacks */ - ot->poll= vertex_group_poll; + ot->poll= vertex_group_poll_edit; /* TODO - add object mode support */ ot->exec= vertex_group_blend_exec; /* flags */ |