From d282728f1d742e84314da8d2ed23eb831806e99b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 26 Feb 2015 17:47:41 +1100 Subject: mesh_validate: don't add invalid edges into the hash --- source/blender/blenkernel/intern/mesh_validate.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'source/blender/blenkernel/intern/mesh_validate.c') diff --git a/source/blender/blenkernel/intern/mesh_validate.c b/source/blender/blenkernel/intern/mesh_validate.c index 05dca62f919..42e9709cc92 100644 --- a/source/blender/blenkernel/intern/mesh_validate.c +++ b/source/blender/blenkernel/intern/mesh_validate.c @@ -308,6 +308,7 @@ bool BKE_mesh_validate_arrays(Mesh *mesh, for (i = 0, me = medges; i < totedge; i++, me++) { bool remove = false; + if (me->v1 == me->v2) { PRINT_ERR("\tEdge %u: has matching verts, both %u\n", i, me->v1); remove = do_fixes; @@ -321,14 +322,16 @@ bool BKE_mesh_validate_arrays(Mesh *mesh, remove = do_fixes; } - if (BLI_edgehash_haskey(edge_hash, me->v1, me->v2)) { + if ((me->v1 != me->v2) && BLI_edgehash_haskey(edge_hash, me->v1, me->v2)) { PRINT_ERR("\tEdge %u: is a duplicate of %d\n", i, GET_INT_FROM_POINTER(BLI_edgehash_lookup(edge_hash, me->v1, me->v2))); remove = do_fixes; } if (remove == false) { - BLI_edgehash_insert(edge_hash, me->v1, me->v2, SET_INT_IN_POINTER(i)); + if (me->v1 != me->v2) { + BLI_edgehash_insert(edge_hash, me->v1, me->v2, SET_INT_IN_POINTER(i)); + } } else { REMOVE_EDGE_TAG(me); -- cgit v1.2.3