diff options
author | Martin Poirier <theeth@yahoo.com> | 2009-03-24 22:39:43 +0300 |
---|---|---|
committer | Martin Poirier <theeth@yahoo.com> | 2009-03-24 22:39:43 +0300 |
commit | 616897d0db674275b0f8d962f220f8d722a976d5 (patch) | |
tree | 3915b85dc92cc92153064ce0a5c8bd8ca1c52ba0 | |
parent | 6020d2cb45322c0dfa3d9548cca62318b7a6491c (diff) |
Bad crash in volume snapping code when duplis where involved.
Found out using Coverity's scan report.
-rw-r--r-- | source/blender/src/transform_snap.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/source/blender/src/transform_snap.c b/source/blender/src/transform_snap.c index bedfaf60b77..b43984af1a6 100644 --- a/source/blender/src/transform_snap.c +++ b/source/blender/src/transform_snap.c @@ -1563,11 +1563,21 @@ int peelObjects(ListBase *depth_peels, short mval[2]) Object *ob = dupli_ob->ob; if (ob->type == OB_MESH) { - DerivedMesh *dm; - int editmesh = 0; + DerivedMesh *dm = NULL; int val; - val = peelDerivedMesh(ob, dm, dupli_ob->mat, ray_start, ray_normal, mval, depth_peels); + if (ob != G.obedit) + { + dm = mesh_get_derived_final(ob, CD_MASK_BAREMESH); + + val = peelDerivedMesh(ob, dm, dupli_ob->mat, ray_start, ray_normal, mval, depth_peels); + } + else + { + dm = editmesh_get_derived_cage(CD_MASK_BAREMESH); + + val = peelDerivedMesh(ob, dm, dupli_ob->mat, ray_start, ray_normal, mval, depth_peels); + } retval = retval || val; |