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 | |
parent | 6bed106ed4b0701bdb404a87dfa0c4805dc4bb60 (diff) |
fix for 2 crashes from missing NULL checks.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/editderivedmesh.c | 2 | ||||
-rw-r--r-- | source/blender/editors/mesh/bmesh_tools.c | 2 | ||||
-rw-r--r-- | source/blender/editors/object/object_vgroup.c | 22 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_fluidsim_util.c | 5 |
4 files changed, 18 insertions, 13 deletions
diff --git a/source/blender/blenkernel/intern/editderivedmesh.c b/source/blender/blenkernel/intern/editderivedmesh.c index 06712d38890..943f499ed1b 100644 --- a/source/blender/blenkernel/intern/editderivedmesh.c +++ b/source/blender/blenkernel/intern/editderivedmesh.c @@ -1717,5 +1717,5 @@ DerivedMesh *getEditDerivedBMesh( BMEditMesh *BMEdit_FromObject(Object *ob) { BLI_assert(ob->type == OB_MESH); - return ((Mesh *) ob->data )->edit_btmesh; + return ((Mesh *)ob->data)->edit_btmesh; } diff --git a/source/blender/editors/mesh/bmesh_tools.c b/source/blender/editors/mesh/bmesh_tools.c index fa36113135e..d1a8b2ae896 100644 --- a/source/blender/editors/mesh/bmesh_tools.c +++ b/source/blender/editors/mesh/bmesh_tools.c @@ -413,7 +413,7 @@ void MESH_OT_extrude_repeat(wmOperatorType *ot) /* api callbacks */ ot->exec = extrude_repeat_mesh; - ot->poll = ED_operator_editmesh; + ot->poll = ED_operator_editmesh_view3d; /* flags */ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; 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 */ diff --git a/source/blender/modifiers/intern/MOD_fluidsim_util.c b/source/blender/modifiers/intern/MOD_fluidsim_util.c index dc0c4d5ad86..e9563b55d47 100644 --- a/source/blender/modifiers/intern/MOD_fluidsim_util.c +++ b/source/blender/modifiers/intern/MOD_fluidsim_util.c @@ -152,9 +152,8 @@ void fluidsim_init(FluidsimModifierData *fluidmd) void fluidsim_free(FluidsimModifierData *fluidmd) { - if(fluidmd) { - if(fluidmd->fss->meshVelocities) - { + if (fluidmd && fluidmd->fss) { + if (fluidmd->fss->meshVelocities) { MEM_freeN(fluidmd->fss->meshVelocities); fluidmd->fss->meshVelocities = NULL; } |