[Bf-blender-cvs] [cfd766cebdf] master: Fix T86308 Crash in Exact Boolean when have custom normal layer.

Howard Trickey noreply at git.blender.org
Sat Mar 6 15:09:01 CET 2021


Commit: cfd766cebdf6f65e3184229277985b95128f9ad2
Author: Howard Trickey
Date:   Sat Mar 6 09:05:55 2021 -0500
Branches: master
https://developer.blender.org/rBcfd766cebdf6f65e3184229277985b95128f9ad2

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.

===================================================================

M	source/blender/blenkernel/intern/mesh_boolean_convert.cc

===================================================================

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) {



More information about the Bf-blender-cvs mailing list