diff options
-rw-r--r-- | source/blender/blenkernel/intern/bvhutils.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/bvhutils.c b/source/blender/blenkernel/intern/bvhutils.c index 93794eb9709..64c7b89bade 100644 --- a/source/blender/blenkernel/intern/bvhutils.c +++ b/source/blender/blenkernel/intern/bvhutils.c @@ -717,11 +717,14 @@ BVHTree *bvhtree_from_mesh_verts_ex(BVHTreeFromMesh *data, /* printf("BVHTree built and saved on cache\n"); */ BVHCache *bvh_cache = *bvh_cache_p; bvhcache_insert(bvh_cache, tree, bvh_cache_type); - bvhcache_unlock(bvh_cache, lock_started); in_cache = true; } } + if (bvh_cache_p) { + bvhcache_unlock(*bvh_cache_p, lock_started); + } + /* Setup BVHTreeFromMesh */ bvhtree_from_mesh_verts_setup_data(data, tree, in_cache, vert, vert_allocated); @@ -929,11 +932,14 @@ BVHTree *bvhtree_from_mesh_edges_ex(BVHTreeFromMesh *data, /* Save on cache for later use */ /* printf("BVHTree built and saved on cache\n"); */ bvhcache_insert(bvh_cache, tree, bvh_cache_type); - bvhcache_unlock(bvh_cache, lock_started); in_cache = true; } } + if (bvh_cache_p) { + bvhcache_unlock(*bvh_cache_p, lock_started); + } + /* Setup BVHTreeFromMesh */ bvhtree_from_mesh_edges_setup_data( data, tree, in_cache, vert, vert_allocated, edge, edge_allocated); @@ -1058,11 +1064,14 @@ BVHTree *bvhtree_from_mesh_faces_ex(BVHTreeFromMesh *data, /* printf("BVHTree built and saved on cache\n"); */ BVHCache *bvh_cache = *bvh_cache_p; bvhcache_insert(bvh_cache, tree, bvh_cache_type); - bvhcache_unlock(bvh_cache, lock_started); in_cache = true; } } + if (bvh_cache_p) { + bvhcache_unlock(*bvh_cache_p, lock_started); + } + /* Setup BVHTreeFromMesh */ bvhtree_from_mesh_faces_setup_data( data, tree, in_cache, vert, vert_allocated, face, face_allocated); @@ -1298,11 +1307,14 @@ BVHTree *bvhtree_from_mesh_looptri_ex(BVHTreeFromMesh *data, if (bvh_cache_p) { BVHCache *bvh_cache = *bvh_cache_p; bvhcache_insert(bvh_cache, tree, bvh_cache_type); - bvhcache_unlock(bvh_cache, lock_started); in_cache = true; } } + if (bvh_cache_p) { + bvhcache_unlock(*bvh_cache_p, lock_started); + } + /* Setup BVHTreeFromMesh */ bvhtree_from_mesh_looptri_setup_data(data, tree, |