diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-03-12 01:27:06 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-03-12 01:27:06 +0300 |
commit | 9dfda4b002ab438008f4e00a5c8e98c41540a141 (patch) | |
tree | 4da8fa4aa06a342d263b4fc482eda9b50dbef712 /source/blender/render/intern/raytrace/rayobject_vbvh.cpp | |
parent | 60a4c9d09ea1d7216139c93466fb2ca9bef6648c (diff) |
Fix #26203: crash with empty raytree, all types should survive this now.
Also added a check for -inf/inf bounding boxes, just to be sure.
Diffstat (limited to 'source/blender/render/intern/raytrace/rayobject_vbvh.cpp')
-rw-r--r-- | source/blender/render/intern/raytrace/rayobject_vbvh.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/source/blender/render/intern/raytrace/rayobject_vbvh.cpp b/source/blender/render/intern/raytrace/rayobject_vbvh.cpp index 1765f3da381..25eada43a4a 100644 --- a/source/blender/render/intern/raytrace/rayobject_vbvh.cpp +++ b/source/blender/render/intern/raytrace/rayobject_vbvh.cpp @@ -98,13 +98,17 @@ void bvh_done<VBVHTree>(VBVHTree *obj) return; } - reorganize(root); - remove_useless(root, &root); - bvh_refit(root); - - pushup(root); - pushdown(root); - obj->root = root; + if(root) { + reorganize(root); + remove_useless(root, &root); + bvh_refit(root); + + pushup(root); + pushdown(root); + obj->root = root; + } + else + obj->root = NULL; } else { |