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 */

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to