[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44722] trunk/blender/source/blender: fix for 2 crashes from missing NULL checks.

Campbell Barton ideasman42 at gmail.com
Thu Mar 8 01:23:37 CET 2012


Revision: 44722
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44722
Author:   campbellbarton
Date:     2012-03-08 00:23:28 +0000 (Thu, 08 Mar 2012)
Log Message:
-----------
fix for 2 crashes from missing NULL checks.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c
    trunk/blender/source/blender/editors/mesh/bmesh_tools.c
    trunk/blender/source/blender/editors/object/object_vgroup.c
    trunk/blender/source/blender/modifiers/intern/MOD_fluidsim_util.c

Modified: trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c	2012-03-07 22:21:28 UTC (rev 44721)
+++ trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c	2012-03-08 00:23:28 UTC (rev 44722)
@@ -1717,5 +1717,5 @@
 BMEditMesh *BMEdit_FromObject(Object *ob)
 {
 	BLI_assert(ob->type == OB_MESH);
-	return ((Mesh *)   ob->data   )->edit_btmesh;
+	return ((Mesh *)ob->data)->edit_btmesh;
 }

Modified: trunk/blender/source/blender/editors/mesh/bmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/bmesh_tools.c	2012-03-07 22:21:28 UTC (rev 44721)
+++ trunk/blender/source/blender/editors/mesh/bmesh_tools.c	2012-03-08 00:23:28 UTC (rev 44722)
@@ -413,7 +413,7 @@
 	
 	/* 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;

Modified: trunk/blender/source/blender/editors/object/object_vgroup.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_vgroup.c	2012-03-07 22:21:28 UTC (rev 44721)
+++ trunk/blender/source/blender/editors/object/object_vgroup.c	2012-03-08 00:23:28 UTC (rev 44722)
@@ -1257,10 +1257,9 @@
 	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 @@
 				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 @@
 	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 @@
 	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 */

Modified: trunk/blender/source/blender/modifiers/intern/MOD_fluidsim_util.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_fluidsim_util.c	2012-03-07 22:21:28 UTC (rev 44721)
+++ trunk/blender/source/blender/modifiers/intern/MOD_fluidsim_util.c	2012-03-08 00:23:28 UTC (rev 44722)
@@ -152,9 +152,8 @@
 
 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;
 		}




More information about the Bf-blender-cvs mailing list