From 0945a79ed1eafae444d3021a5912cb39801a7209 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 15 Jun 2020 23:17:42 +1000 Subject: Fix crash using shrink-wrap modifier in edit-mode Regression in deaff945d0b96. --- source/blender/blenkernel/intern/shrinkwrap.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'source/blender') 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; } -- cgit v1.2.3