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) {

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to