From 102631486b480d98c2d9b921a95472688bba8416 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Tue, 22 Jan 2019 12:51:14 +0100 Subject: Fix potential invalid memory access in surface force field BVH tree. Free the BVH tree immediately along with the mesh, otherwise we might access invalid mesh data. Differential Revision: https://developer.blender.org/D4201 --- source/blender/blenkernel/intern/bvhutils.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender/blenkernel/intern/bvhutils.c') diff --git a/source/blender/blenkernel/intern/bvhutils.c b/source/blender/blenkernel/intern/bvhutils.c index c264eb8a1d2..644672c52fc 100644 --- a/source/blender/blenkernel/intern/bvhutils.c +++ b/source/blender/blenkernel/intern/bvhutils.c @@ -1112,6 +1112,8 @@ BVHTree *BKE_bvhtree_from_mesh_get( data_cp.vert = mesh->mvert; if (data_cp.cached == false) { + /* TODO: a global mutex lock held during the expensive operation of + * building the BVH tree is really bad for performance. */ BLI_rw_mutex_lock(&cache_rwlock, THREAD_LOCK_WRITE); data_cp.cached = bvhcache_find( mesh->runtime.bvh_cache, type, &data_cp.tree); -- cgit v1.2.3