[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37047] branches/cycles/intern/cycles/ blender/blender_mesh.cpp: Cycles: fix crash syncing curve/ text object with no verts/faces.

Brecht Van Lommel brechtvanlommel at pandora.be
Tue May 31 13:12:42 CEST 2011


Revision: 37047
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37047
Author:   blendix
Date:     2011-05-31 11:12:42 +0000 (Tue, 31 May 2011)
Log Message:
-----------
Cycles: fix crash syncing curve/text object with no verts/faces.

Modified Paths:
--------------
    branches/cycles/intern/cycles/blender/blender_mesh.cpp

Modified: branches/cycles/intern/cycles/blender/blender_mesh.cpp
===================================================================
--- branches/cycles/intern/cycles/blender/blender_mesh.cpp	2011-05-31 11:02:01 UTC (rev 37046)
+++ branches/cycles/intern/cycles/blender/blender_mesh.cpp	2011-05-31 11:12:42 UTC (rev 37047)
@@ -260,7 +260,6 @@
 
 	/* create derived mesh */
 	BL::Mesh b_mesh = object_to_mesh(b_ob, b_scene, true, !preview);
-	/* todo: this will crash on non-mesh types! */
 	PointerRNA cmesh = RNA_pointer_get(&b_ob_data.ptr, "cycles");
 
 	vector<Mesh::Triangle> oldtriangle = mesh->triangles;
@@ -269,13 +268,15 @@
 	mesh->used_shaders = used_shaders;
 	mesh->name = ustring(b_ob_data.name());
 
-	if(cmesh.data && RNA_boolean_get(&cmesh, "use_subdivision"))
-		create_subd_mesh(mesh, b_mesh, &cmesh, used_shaders);
-	else
-		create_mesh(scene, mesh, b_mesh, used_shaders);
+	if(b_mesh) {
+		if(cmesh.data && RNA_boolean_get(&cmesh, "use_subdivision"))
+			create_subd_mesh(mesh, b_mesh, &cmesh, used_shaders);
+		else
+			create_mesh(scene, mesh, b_mesh, used_shaders);
 
-	/* free derived mesh */
-	object_remove_mesh(b_data, b_mesh);
+		/* free derived mesh */
+		object_remove_mesh(b_data, b_mesh);
+	}
 
 	/* displacement method */
 	if(cmesh.data) {




More information about the Bf-blender-cvs mailing list