[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52688] trunk/blender/source/blender: fix for various asserts running operator tests - not likely any of these would cause real user bugs though .

Campbell Barton ideasman42 at gmail.com
Fri Nov 30 17:41:44 CET 2012


Revision: 52688
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52688
Author:   campbellbarton
Date:     2012-11-30 16:41:43 +0000 (Fri, 30 Nov 2012)
Log Message:
-----------
fix for various asserts running operator tests - not likely any of these would cause real user bugs though.

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/operators/bmo_smooth_laplacian.c
    trunk/blender/source/blender/editors/mesh/editmesh_select.c
    trunk/blender/source/blender/editors/mesh/editmesh_tools.c
    trunk/blender/source/blender/editors/uvedit/uvedit_smart_stitch.c

Modified: trunk/blender/source/blender/bmesh/operators/bmo_smooth_laplacian.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_smooth_laplacian.c	2012-11-30 16:15:49 UTC (rev 52687)
+++ trunk/blender/source/blender/bmesh/operators/bmo_smooth_laplacian.c	2012-11-30 16:41:43 UTC (rev 52688)
@@ -544,6 +544,7 @@
 	BMVert *v;
 	LaplacianSystem *sys;
 
+	if (bm->totface == 0) return;
 	sys = init_laplacian_system(bm->totedge, bm->totface, bm->totvert);
 	if (!sys) return;
 	sys->bm = bm;

Modified: trunk/blender/source/blender/editors/mesh/editmesh_select.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_select.c	2012-11-30 16:15:49 UTC (rev 52687)
+++ trunk/blender/source/blender/editors/mesh/editmesh_select.c	2012-11-30 16:41:43 UTC (rev 52688)
@@ -732,7 +732,7 @@
 	EDBM_flag_disable_all(em, BM_ELEM_SELECT);
 
 	/* select the output */
-	BMO_slot_buffer_hflag_enable(em->bm, bmop.slots_out, "faces.out", BM_ALL_NOLOOP, BM_ELEM_SELECT, TRUE);
+	BMO_slot_buffer_hflag_enable(em->bm, bmop.slots_out, "faces.out", BM_FACE, BM_ELEM_SELECT, TRUE);
 
 	/* finish the operator */
 	if (!EDBM_op_finish(em, &bmop, op, TRUE)) {
@@ -773,7 +773,7 @@
 	EDBM_flag_disable_all(em, BM_ELEM_SELECT);
 
 	/* select the output */
-	BMO_slot_buffer_hflag_enable(em->bm, bmop.slots_out, "edges.out", BM_ALL_NOLOOP, BM_ELEM_SELECT, TRUE);
+	BMO_slot_buffer_hflag_enable(em->bm, bmop.slots_out, "edges.out", BM_EDGE, BM_ELEM_SELECT, TRUE);
 	EDBM_selectmode_flush(em);
 
 	/* finish the operator */
@@ -817,7 +817,7 @@
 	EDBM_flag_disable_all(em, BM_ELEM_SELECT);
 
 	/* select the output */
-	BMO_slot_buffer_hflag_enable(em->bm, bmop.slots_out, "verts.out", BM_ALL_NOLOOP, BM_ELEM_SELECT, TRUE);
+	BMO_slot_buffer_hflag_enable(em->bm, bmop.slots_out, "verts.out", BM_VERT, BM_ELEM_SELECT, TRUE);
 
 	/* finish the operator */
 	if (!EDBM_op_finish(em, &bmop, op, TRUE)) {

Modified: trunk/blender/source/blender/editors/mesh/editmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2012-11-30 16:15:49 UTC (rev 52687)
+++ trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2012-11-30 16:41:43 UTC (rev 52688)
@@ -2319,7 +2319,7 @@
 	/* EDBM_flag_disable_all(em, BM_ELEM_SELECT); */
 
 	/* select the output */
-	BMO_slot_buffer_hflag_enable(em->bm, bmop.slots_out, "verts.out", BM_ALL_NOLOOP, BM_ELEM_SELECT, TRUE);
+	BMO_slot_buffer_hflag_enable(em->bm, bmop.slots_out, "verts.out", BM_VERT, BM_ELEM_SELECT, TRUE);
 
 	/* finish the operator */
 	if (!EDBM_op_finish(em, &bmop, op, TRUE)) {

Modified: trunk/blender/source/blender/editors/uvedit/uvedit_smart_stitch.c
===================================================================
--- trunk/blender/source/blender/editors/uvedit/uvedit_smart_stitch.c	2012-11-30 16:15:49 UTC (rev 52687)
+++ trunk/blender/source/blender/editors/uvedit/uvedit_smart_stitch.c	2012-11-30 16:41:43 UTC (rev 52688)
@@ -1072,17 +1072,23 @@
 	BMEditMesh *em;
 	GHashIterator *ghi;
 	UvEdge *all_edges;
-	StitchState *state = MEM_mallocN(sizeof(StitchState), "stitch state");
+	StitchState *state;
 	Scene *scene = CTX_data_scene(C);
 	ToolSettings *ts = scene->toolsettings;
+	ARegion *ar = CTX_wm_region(C);
 
 	Object *obedit = CTX_data_edit_object(C);
 
-	op->customdata = state;
+	if (!ar)
+		return 0;
 
+	state = MEM_mallocN(sizeof(StitchState), "stitch state");
+
 	if (!state)
 		return 0;
 
+	op->customdata = state;
+
 	/* initialize state */
 	state->use_limit = RNA_boolean_get(op->ptr, "use_limit");
 	state->limit_dist = RNA_float_get(op->ptr, "limit");
@@ -1091,7 +1097,7 @@
 	state->static_island = RNA_int_get(op->ptr, "static_island");
 	state->midpoints = RNA_boolean_get(op->ptr, "midpoint_snap");
 	state->clear_seams = RNA_boolean_get(op->ptr, "clear_seams");
-	state->draw_handle = ED_region_draw_cb_activate(CTX_wm_region(C)->type, stitch_draw, NULL, REGION_DRAW_POST_VIEW);
+	state->draw_handle = ED_region_draw_cb_activate(ar->type, stitch_draw, NULL, REGION_DRAW_POST_VIEW);
 	/* in uv synch selection, all uv's are visible */
 	if (ts->uv_flag & UV_SYNC_SELECTION) {
 		state->element_map = EDBM_uv_element_map_create(state->em, 0, 1);




More information about the Bf-blender-cvs mailing list