Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Poirier <theeth@yahoo.com>2009-03-24 22:39:43 +0300
committerMartin Poirier <theeth@yahoo.com>2009-03-24 22:39:43 +0300
commit616897d0db674275b0f8d962f220f8d722a976d5 (patch)
tree3915b85dc92cc92153064ce0a5c8bd8ca1c52ba0
parent6020d2cb45322c0dfa3d9548cca62318b7a6491c (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.c16
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;