[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [10798] trunk/blender/source/blender: fix for a crash in Blender.Mesh,
Campbell Barton
cbarton at metavr.com
Mon May 28 18:49:58 CEST 2007
Revision: 10798
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10798
Author: campbellbarton
Date: 2007-05-28 18:49:48 +0200 (Mon, 28 May 2007)
Log Message:
-----------
fix for a crash in Blender.Mesh,
getting curve data from an object failed (with only 1 curve vertex)
Blender.Mesh didnt check this and crashed.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/mesh.c
trunk/blender/source/blender/python/api2_2x/Mesh.c
trunk/blender/source/blender/src/editobject.c
Modified: trunk/blender/source/blender/blenkernel/intern/mesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mesh.c 2007-05-28 16:10:40 UTC (rev 10797)
+++ trunk/blender/source/blender/blenkernel/intern/mesh.c 2007-05-28 16:49:48 UTC (rev 10798)
@@ -808,6 +808,7 @@
}
}
+/* this may fail replacing ob->data, be sure to check ob->type */
void nurbs_to_mesh(Object *ob)
{
Object *ob1;
@@ -847,7 +848,8 @@
dl= dl->next;
}
if(totvert==0) {
- error("can't convert");
+ /* error("can't convert"); */
+ /* Make Sure you check ob->data is a curve */
return;
}
Modified: trunk/blender/source/blender/python/api2_2x/Mesh.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Mesh.c 2007-05-28 16:10:40 UTC (rev 10797)
+++ trunk/blender/source/blender/python/api2_2x/Mesh.c 2007-05-28 16:49:48 UTC (rev 10798)
@@ -5704,6 +5704,10 @@
nurbs_to_mesh( tmpobj );
tmpmesh = tmpobj->data;
free_libblock_us( &G.main->object, tmpobj );
+
+ if (ob->type != OB_MESH)
+ return EXPP_ReturnPyObjError( PyExc_RuntimeError,
+ "cant convert curve to mesh. Does the curve have any segments?" );
break;
case OB_MBALL:
/* metaballs don't have modifiers, so just convert to mesh */
Modified: trunk/blender/source/blender/src/editobject.c
===================================================================
--- trunk/blender/source/blender/src/editobject.c 2007-05-28 16:10:40 UTC (rev 10797)
+++ trunk/blender/source/blender/src/editobject.c 2007-05-28 16:49:48 UTC (rev 10798)
@@ -2527,8 +2527,11 @@
if(dl==0) makeDispListCurveTypes(ob, 0); /* force creation */
nurbs_to_mesh(ob); /* also does users */
-
- object_free_modifiers(ob);
+ if (ob->type != OB_MESH) {
+ error("can't convert curve to mesh");
+ } else {
+ object_free_modifiers(ob);
+ }
}
void convertmenu(void)
More information about the Bf-blender-cvs
mailing list