[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41375] branches/bmesh/blender/source/ blender/bmesh/operators/edgesplitop.c: Remove an edge split workaround and replace with faster, better fix for 28669

Andrew Wiggin ender79bl at gmail.com
Sun Oct 30 04:33:12 CET 2011


Revision: 41375
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41375
Author:   ender79
Date:     2011-10-30 03:33:08 +0000 (Sun, 30 Oct 2011)
Log Message:
-----------
Remove an edge split workaround and replace with faster, better fix for 28669 

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/bmesh/operators/edgesplitop.c

Modified: branches/bmesh/blender/source/blender/bmesh/operators/edgesplitop.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/edgesplitop.c	2011-10-30 02:15:32 UTC (rev 41374)
+++ branches/bmesh/blender/source/blender/bmesh/operators/edgesplitop.c	2011-10-30 03:33:08 UTC (rev 41375)
@@ -187,6 +187,11 @@
 					}
 				}
 
+				/* If the original edge was non-manifold edges, then it is
+				   possible l->e is not et->newe1 or et->newe2. So always clear
+				   the flag on l->e as well, to prevent infinite looping. */
+				BMO_ClearFlag(bm, l->e, EDGE_SEAM);
+
 				startl = l;
 				do {
 					l = BM_OtherFaceLoop(l->e, l->f, v);
@@ -201,25 +206,6 @@
 				}
 
 				v = (l->v == v) ? l->next->v : l->v;
-
-				/*
-				 * temporary workaround for #28869: this inner loop is hanging
-				 * on loading some file with edge split modifier. the loop visits
-				 * vertices, and shouldn't execute more iterations than there are
-				 * vertices in the mesh.
-				 *
-				 * clear tags and bail if things start to seem flaky.
-				 */
-				if (++j > bm->totvert) {
-					BLI_assert(0);
-
-					BM_ITER(e, &iter, bm, BM_EDGES_OF_MESH, NULL) {
-						BMO_SetFlag(bm, e, EDGE_RET1);
-						BMO_SetFlag(bm, e, EDGE_RET2);
-					}
-
-					return;
-				}
 			}
 		}
 	}




More information about the Bf-blender-cvs mailing list