From 4fe5a105f6da5131396f93658389103475d89b09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Wed, 9 May 2018 17:37:54 +0200 Subject: Fix bad pointer cast when modifier is used on non-mesh object --- source/blender/modifiers/intern/MOD_lattice.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'source/blender/modifiers/intern/MOD_lattice.c') diff --git a/source/blender/modifiers/intern/MOD_lattice.c b/source/blender/modifiers/intern/MOD_lattice.c index 548480acdd8..9487841af95 100644 --- a/source/blender/modifiers/intern/MOD_lattice.c +++ b/source/blender/modifiers/intern/MOD_lattice.c @@ -99,27 +99,26 @@ static void deformVerts(ModifierData *md, const ModifierEvalContext *ctx, int numVerts) { LatticeModifierData *lmd = (LatticeModifierData *) md; - struct Mesh *mesh_src = mesh ? mesh : ctx->object->data; + struct Mesh *mesh_src = get_mesh(ctx->object, NULL, mesh, NULL, false, false); modifier_vgroup_cache(md, vertexCos); /* if next modifier needs original vertices */ lattice_deform_verts(lmd->object, ctx->object, mesh_src, vertexCos, numVerts, lmd->name, lmd->strength); -} + + if (mesh_src != mesh) { + BKE_id_free(NULL, mesh_src); + }} static void deformVertsEM( ModifierData *md, const ModifierEvalContext *ctx, struct BMEditMesh *em, struct Mesh *mesh, float (*vertexCos)[3], int numVerts) { - struct Mesh *mesh_src = mesh; - - if (!mesh) { - mesh_src = BKE_bmesh_to_mesh_nomain(em->bm, &(struct BMeshToMeshParams){0}); - } + struct Mesh *mesh_src = get_mesh(ctx->object, em, mesh, NULL, false, false); deformVerts(md, ctx, mesh_src, vertexCos, numVerts); - if (!mesh) { + if (mesh_src != mesh) { BKE_id_free(NULL, mesh_src); } } -- cgit v1.2.3