[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60796] trunk/blender/source/blender/bmesh /operators/bmo_utils.c: fix [#37100] Segfault when I rotate an edge

Campbell Barton ideasman42 at gmail.com
Wed Oct 16 07:24:55 CEST 2013


Revision: 60796
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60796
Author:   campbellbarton
Date:     2013-10-16 05:24:55 +0000 (Wed, 16 Oct 2013)
Log Message:
-----------
fix [#37100] Segfault when I rotate an edge

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/operators/bmo_utils.c

Modified: trunk/blender/source/blender/bmesh/operators/bmo_utils.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_utils.c	2013-10-16 04:08:20 UTC (rev 60795)
+++ trunk/blender/source/blender/bmesh/operators/bmo_utils.c	2013-10-16 05:24:55 UTC (rev 60796)
@@ -145,19 +145,23 @@
 				    BMO_elem_flag_test(bm, fb, FACE_TAINT) == false)
 				{
 
+					/* don't touch again (faces will be freed so run before rotating the edge) */
+					BMO_elem_flag_enable(bm, fa, FACE_TAINT);
+					BMO_elem_flag_enable(bm, fb, FACE_TAINT);
+
 					if (!(e2 = BM_edge_rotate(bm, e, use_ccw, check_flag))) {
+
+						BMO_elem_flag_disable(bm, fa, FACE_TAINT);
+						BMO_elem_flag_disable(bm, fb, FACE_TAINT);
 #if 0
 						BMO_error_raise(bm, op, BMERR_INVALID_SELECTION, "Could not rotate edge");
 						return;
 #endif
+
 						continue;
 					}
 
 					BMO_elem_flag_enable(bm, e2, EDGE_OUT);
-
-					/* don't touch again */
-					BMO_elem_flag_enable(bm, fa, FACE_TAINT);
-					BMO_elem_flag_enable(bm, fb, FACE_TAINT);
 				}
 			}
 		}




More information about the Bf-blender-cvs mailing list