[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59415] trunk/blender/source/blender/bmesh /operators/bmo_triangulate.c: correct error in recent commit triangle-fill-dissolve, need to check if the edges face is removed (happens in rare cases).
Campbell Barton
ideasman42 at gmail.com
Fri Aug 23 13:28:33 CEST 2013
Revision: 59415
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59415
Author: campbellbarton
Date: 2013-08-23 11:28:33 +0000 (Fri, 23 Aug 2013)
Log Message:
-----------
correct error in recent commit triangle-fill-dissolve, need to check if the edges face is removed (happens in rare cases).
Modified Paths:
--------------
trunk/blender/source/blender/bmesh/operators/bmo_triangulate.c
Modified: trunk/blender/source/blender/bmesh/operators/bmo_triangulate.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_triangulate.c 2013-08-23 11:16:52 UTC (rev 59414)
+++ trunk/blender/source/blender/bmesh/operators/bmo_triangulate.c 2013-08-23 11:28:33 UTC (rev 59415)
@@ -137,16 +137,21 @@
if (use_dissolve) {
BMO_ITER (e, &siter, op->slots_out, "geom.out", BM_EDGE) {
- BMFace *f_new;
- f_new = BM_faces_join_pair(bm, e->l->f,
- e->l->radial_next->f, e,
- false); /* join faces */
- if (f_new) {
- BMO_elem_flag_enable(bm, f_new, ELE_NEW);
- BM_edge_kill(bm, e);
+ if (LIKELY(e->l)) { /* in rare cases the edges face will have already been removed from the edge */
+ BMFace *f_new;
+ f_new = BM_faces_join_pair(bm, e->l->f,
+ e->l->radial_next->f, e,
+ false); /* join faces */
+ if (f_new) {
+ BMO_elem_flag_enable(bm, f_new, ELE_NEW);
+ BM_edge_kill(bm, e);
+ }
+ else {
+ BMO_error_clear(bm);
+ }
}
else {
- BMO_error_clear(bm);
+ BM_edge_kill(bm, e);
}
}
More information about the Bf-blender-cvs
mailing list