From cfd766cebdf6f65e3184229277985b95128f9ad2 Mon Sep 17 00:00:00 2001 From: Howard Trickey Date: Sat, 6 Mar 2021 09:05:55 -0500 Subject: Fix T86308 Crash in Exact Boolean when have custom normal layer. Custom Normal layers can't be interpolated, so needed a check for non-interpolatable layers before trying to interpolate. --- source/blender/blenkernel/intern/mesh_boolean_convert.cc | 3 +++ 1 file changed, 3 insertions(+) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/intern/mesh_boolean_convert.cc b/source/blender/blenkernel/intern/mesh_boolean_convert.cc index d9564f91a04..a179d39a9d2 100644 --- a/source/blender/blenkernel/intern/mesh_boolean_convert.cc +++ b/source/blender/blenkernel/intern/mesh_boolean_convert.cc @@ -611,6 +611,9 @@ static void copy_or_interp_loop_attributes(Mesh *dest_mesh, * A non bmesh version could have the benefit of not copying data into src_blocks_ofs - * using the contiguous data instead. TODO: add to the custom data API. */ int target_layer_type_index = CustomData_get_named_layer(target_cd, ty, name); + if (!CustomData_layer_has_interp(source_cd, source_layer_i)) { + continue; + } int source_layer_type_index = source_layer_i - source_cd->typemap[ty]; BLI_assert(target_layer_type_index != -1 && source_layer_type_index >= 0); for (int j = 0; j < orig_mp->totloop; ++j) { -- cgit v1.2.3