fix/workaround for cycles crash packing bvh
authorCampbell Barton <ideasman42@gmail.com>
Mon, 9 Jul 2012 12:55:16 +0000 (12:55 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Mon, 9 Jul 2012 12:55:16 +0000 (12:55 +0000)
brecht - when you get time please look into this to see if the fix is ok.

intern/cycles/bvh/bvh.cpp

index a383ad317ab873f951e4cd8d69914bf6a78ac14f..bdcd3b6ba19fc0c81a42ef11a4b239bd7c21c66d 100644 (file)
@@ -378,10 +378,19 @@ void BVH::pack_instances(size_t nodes_size)
                int mesh_tri_offset = mesh->tri_offset;
 
                /* fill in node indexes for instances */
-               if(bvh->pack.is_leaf[0])
+               if(
+                  /* XXX, brecht. check this is needed!. it could be a bug elsewhere
+                   * /mango/pro/scenes/04_2e/04_2e.blend r2158. on Ian's system 192.168.3.27  - campbell */
+                  (bvh->pack.is_leaf.size() != 0) &&
+
+                  /* previously only checked this */
+                  bvh->pack.is_leaf[0])
+               {
                        pack.object_node[object_offset++] = -noffset-1;
-               else
+               }
+               else {
                        pack.object_node[object_offset++] = noffset;
+               }
 
                mesh_map[mesh] = pack.object_node[object_offset-1];