Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-03-08 04:23:28 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-03-08 04:23:28 +0400
commit52db32bb53cf4d1b8b098238b1e896e8502027d2 (patch)
tree88465e8231b53343ac213332d988952afb42dccb /source/blender/editors/object
parent6bed106ed4b0701bdb404a87dfa0c4805dc4bb60 (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.c22
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 */