[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44878] trunk/blender/source/blender/bmesh /intern/bmesh_walkers_impl.c: fix hang when loop selecting an ngon.

Antony Riakiotakis kalast at gmail.com
Wed Mar 14 14:52:20 CET 2012


Revision: 44878
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44878
Author:   psy-fi
Date:     2012-03-14 13:52:17 +0000 (Wed, 14 Mar 2012)
Log Message:
-----------
fix hang when loop selecting an ngon. We need to check if edge currently walked on has already been added

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/intern/bmesh_walkers_impl.c

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_walkers_impl.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_walkers_impl.c	2012-03-14 12:03:49 UTC (rev 44877)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_walkers_impl.c	2012-03-14 13:52:17 UTC (rev 44878)
@@ -467,15 +467,17 @@
 			l = BM_face_other_vert_loop(owalk.f_hub, lwalk->lastv, v);
 			nexte = BM_edge_exists(v, l->v);
 
-			lwalk = BMW_state_add(walker);
-			lwalk->cur = nexte;
-			lwalk->lastv = v;
+            if(!BLI_ghash_haskey(walker->visithash, nexte)){
+                lwalk = BMW_state_add(walker);
+                lwalk->cur = nexte;
+                lwalk->lastv = v;
 
-			lwalk->is_boundry = owalk.is_boundry;
-			lwalk->is_single = owalk.is_single;
-			lwalk->f_hub = owalk.f_hub;
+                lwalk->is_boundry = owalk.is_boundry;
+                lwalk->is_single = owalk.is_single;
+                lwalk->f_hub = owalk.f_hub;
 
-			BLI_ghash_insert(walker->visithash, nexte, NULL);
+                BLI_ghash_insert(walker->visithash, nexte, NULL);
+            }
 		}
 	}
 	else if (l) { /* NORMAL EDGE WITH FACES */




More information about the Bf-blender-cvs mailing list