[Bf-blender-cvs] [410ca0e] master: Recent change to bmesh_jekv caused assert

Campbell Barton noreply at git.blender.org
Thu Nov 19 22:29:59 CET 2015


Commit: 410ca0ed92b8922d11499208c2da9a52ffde18e1
Author: Campbell Barton
Date:   Fri Nov 20 08:14:49 2015 +1100
Branches: master
https://developer.blender.org/rB410ca0ed92b8922d11499208c2da9a52ffde18e1

Recent change to bmesh_jekv caused assert

Note that the mesh was valid, this just stops the radial check from failing.

===================================================================

M	source/blender/bmesh/intern/bmesh_core.c

===================================================================

diff --git a/source/blender/bmesh/intern/bmesh_core.c b/source/blender/bmesh/intern/bmesh_core.c
index f82b09d..17e3cf6 100644
--- a/source/blender/bmesh/intern/bmesh_core.c
+++ b/source/blender/bmesh/intern/bmesh_core.c
@@ -1744,6 +1744,8 @@ BMEdge *bmesh_jekv(
 		}
 		else {
 			BMEdge *e_splice;
+			BLI_SMALLSTACK_DECLARE(faces_degenerate, BMFace *);
+			BMLoop *l_kill_next;
 
 #ifndef NDEBUG
 			/* For verification later, count valence of v_old and tv */
@@ -1765,8 +1767,7 @@ BMEdge *bmesh_jekv(
 			radlen = bmesh_radial_length(e_kill->l);
 #endif
 			if (e_kill->l) {
-				BLI_SMALLSTACK_DECLARE(faces_degenerate, BMFace *);
-				BMLoop *l_kill_next;
+
 
 				/* fix the neighboring loops of all loops in e_kill's radial cycle */
 				l_kill = e_kill->l;
@@ -1800,12 +1801,6 @@ BMEdge *bmesh_jekv(
 				edok = bmesh_radial_validate(radlen, e_old->l);
 				BMESH_ASSERT(edok != false);
 #endif
-				if (kill_degenerate_faces) {
-					BMFace *f_kill;
-					while ((f_kill = BLI_SMALLSTACK_POP(faces_degenerate))) {
-						BM_face_kill(bm, f_kill);
-					}
-				}
 			}
 			/* deallocate edge */
 			bm_kill_only_edge(bm, e_kill);
@@ -1839,7 +1834,6 @@ BMEdge *bmesh_jekv(
 				BM_CHECK_ELEMENT(l->f);
 			}
 #endif
-
 			if (check_edge_double) {
 				if (e_splice) {
 					/* removes e_splice */
@@ -1847,6 +1841,13 @@ BMEdge *bmesh_jekv(
 				}
 			}
 
+			if (kill_degenerate_faces) {
+				BMFace *f_kill;
+				while ((f_kill = BLI_SMALLSTACK_POP(faces_degenerate))) {
+					BM_face_kill(bm, f_kill);
+				}
+			}
+
 			BM_CHECK_ELEMENT(v_old);
 			BM_CHECK_ELEMENT(tv);
 			BM_CHECK_ELEMENT(e_old);




More information about the Bf-blender-cvs mailing list