From 7a61916717e3daed8172e679d35fe61bf13f360f Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Tue, 19 Oct 2021 10:42:14 -0500 Subject: Fix T92345: Crash with only pointcloud in attribute transfer node The distances array is only allocated if there are mesh distances to compare to, so it is empty when there is only a point cloud. --- source/blender/nodes/geometry/nodes/node_geo_transfer_attribute.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/blender/nodes/geometry/nodes/node_geo_transfer_attribute.cc b/source/blender/nodes/geometry/nodes/node_geo_transfer_attribute.cc index 4bf856698d9..1c287a0f1bf 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_transfer_attribute.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_transfer_attribute.cc @@ -170,7 +170,9 @@ static void get_closest_pointcloud_points(const PointCloud &pointcloud, BLI_bvhtree_find_nearest( tree_data.tree, position, &nearest, tree_data.nearest_callback, &tree_data); r_indices[i] = nearest.index; - r_distances_sq[i] = nearest.dist_sq; + if (!r_distances_sq.is_empty()) { + r_distances_sq[i] = nearest.dist_sq; + } } free_bvhtree_from_pointcloud(&tree_data); -- cgit v1.2.3