[Bf-blender-cvs] [0945a79ed1e] master: Fix crash using shrink-wrap modifier in edit-mode

Campbell Barton noreply at git.blender.org
Mon Jun 15 15:31:42 CEST 2020


Commit: 0945a79ed1eafae444d3021a5912cb39801a7209
Author: Campbell Barton
Date:   Mon Jun 15 23:17:42 2020 +1000
Branches: master
https://developer.blender.org/rB0945a79ed1eafae444d3021a5912cb39801a7209

Fix crash using shrink-wrap modifier in edit-mode

Regression in deaff945d0b96.

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

M	source/blender/blenkernel/intern/shrinkwrap.c

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

diff --git a/source/blender/blenkernel/intern/shrinkwrap.c b/source/blender/blenkernel/intern/shrinkwrap.c
index c59042bc045..29f4c7dc6c1 100644
--- a/source/blender/blenkernel/intern/shrinkwrap.c
+++ b/source/blender/blenkernel/intern/shrinkwrap.c
@@ -51,6 +51,7 @@
 #include "BKE_editmesh.h"
 #include "BKE_mesh.h" /* for OMP limits. */
 #include "BKE_mesh_runtime.h"
+#include "BKE_mesh_wrapper.h"
 #include "BKE_subsurf.h"
 
 #include "DEG_depsgraph_query.h"
@@ -115,7 +116,16 @@ bool BKE_shrinkwrap_init_tree(
 {
   memset(data, 0, sizeof(*data));
 
-  if (!mesh || mesh->totvert <= 0) {
+  if (mesh == NULL) {
+    return false;
+  }
+
+  /* We could create a BVH tree from the edit mesh,
+   * however accessing normals from the face/loop normals gets more involved.
+   * Convert mesh data since this isn't typically used in edit-mode. */
+  BKE_mesh_wrapper_ensure_mdata(mesh);
+
+  if (mesh->totvert <= 0) {
     return false;
   }



More information about the Bf-blender-cvs mailing list