From e1a57e785858328216a0e6ded05c81843c84620a Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 17 Sep 2013 15:03:01 +0000 Subject: Fix #36750: windows crash with empty cycles scene, can't do &references[0] with MSVC when references is an empty vector. --- intern/cycles/bvh/bvh_build.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'intern') diff --git a/intern/cycles/bvh/bvh_build.cpp b/intern/cycles/bvh/bvh_build.cpp index 5d0e461fba3..2c3c31b5429 100644 --- a/intern/cycles/bvh/bvh_build.cpp +++ b/intern/cycles/bvh/bvh_build.cpp @@ -286,7 +286,7 @@ BVHNode* BVHBuild::build_node(const BVHObjectBinning& range, int level) /* have at least one inner node on top level, for performance and correct * visibility tests, since object instances do not check visibility flag */ - if(!(params.top_level && level == 0)) { + if(!(range.size() > 0 && params.top_level && level == 0)) { /* make leaf node when threshold reached or SAH tells us */ if(params.small_enough_for_leaf(size, level) || (size <= params.max_leaf_size && leafSAH < splitSAH)) return create_leaf_node(range); @@ -326,7 +326,7 @@ BVHNode* BVHBuild::build_node(const BVHRange& range, int level) return NULL; /* small enough or too deep => create leaf. */ - if(!(params.top_level && level == 0)) { + if(!(range.size() > 0 && params.top_level && level == 0)) { if(params.small_enough_for_leaf(range.size(), level)) { progress_count += range.size(); return create_leaf_node(range); @@ -336,7 +336,7 @@ BVHNode* BVHBuild::build_node(const BVHRange& range, int level) /* splitting test */ BVHMixedSplit split(this, range, level); - if(!(params.top_level && level == 0)) { + if(!(range.size() > 0 && params.top_level && level == 0)) { if(split.no_split) { progress_count += range.size(); return create_leaf_node(range); -- cgit v1.2.3