[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46184] trunk/blender/source/blender: bmesh: use fixed stack size for face flipping array.

Campbell Barton ideasman42 at gmail.com
Wed May 2 13:10:55 CEST 2012


Revision: 46184
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46184
Author:   campbellbarton
Date:     2012-05-02 11:10:54 +0000 (Wed, 02 May 2012)
Log Message:
-----------
bmesh: use fixed stack size for face flipping array.

also quiet unused var warnings

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/intern/bmesh_core.c
    trunk/blender/source/blender/editors/space_node/drawnode.c
    trunk/blender/source/blender/editors/space_view3d/drawmesh.c
    trunk/blender/source/blender/editors/space_view3d/drawobject.c
    trunk/blender/source/blender/editors/space_view3d/view3d_intern.h

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_core.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_core.c	2012-05-02 10:52:29 UTC (rev 46183)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_core.c	2012-05-02 11:10:54 UTC (rev 46184)
@@ -582,6 +582,9 @@
 	BLI_array_free(verts);
 }
 
+/**
+ * Kills \a f and its loops.
+ */
 void BM_face_kill(BMesh *bm, BMFace *f)
 {
 #ifdef USE_BMESH_HOLES
@@ -671,7 +674,10 @@
 
 /********** private disk and radial cycle functions ********** */
 
-static int bm_loop_length(BMLoop *l)
+/**
+ * return the length of the face, should always equal \a l->f->len
+ */
+static int UNUSED_FUNCTION(bm_loop_length)(BMLoop *l)
 {
 	BMLoop *l_first = l;
 	int i = 0;
@@ -707,18 +713,15 @@
 	BMLoop *l_first = f->l_first;
 #endif
 
+	const int len = f->len;
+	const int do_disps = CustomData_has_layer(&bm->ldata, CD_MDISPS);
 	BMLoop *l_iter, *oldprev, *oldnext;
 	BMEdge **edar = NULL;
-	MDisps *md;
-	BLI_array_staticdeclare(edar, BM_NGON_STACK_SIZE);
-	int i, j, edok, len = 0, do_disps = CustomData_has_layer(&bm->ldata, CD_MDISPS);
+	BLI_array_fixedstack_declare(edar, BM_NGON_STACK_SIZE, len, __func__);
+	int i, j, edok;
 
-	len = bm_loop_length(l_first);
-
 	for (i = 0, l_iter = l_first; i < len; i++, l_iter = l_iter->next) {
-		BMEdge *curedge = l_iter->e;
-		bmesh_radial_loop_remove(l_iter, curedge);
-		BLI_array_append(edar, curedge);
+		bmesh_radial_loop_remove(l_iter, (edar[i] = l_iter->e));
 	}
 
 	/* actually reverse the loop */
@@ -732,6 +735,7 @@
 		if (do_disps) {
 			float (*co)[3];
 			int x, y, sides;
+			MDisps *md;
 			
 			md = CustomData_bmesh_get(&bm->ldata, l_iter->head.data, CD_MDISPS);
 			if (!md->totdisp || !md->disps)
@@ -777,7 +781,7 @@
 		BM_CHECK_ELEMENT(l_iter->f);
 	}
 
-	BLI_array_free(edar);
+	BLI_array_fixedstack_free(edar);
 
 	BM_CHECK_ELEMENT(f);
 

Modified: trunk/blender/source/blender/editors/space_node/drawnode.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/drawnode.c	2012-05-02 10:52:29 UTC (rev 46183)
+++ trunk/blender/source/blender/editors/space_node/drawnode.c	2012-05-02 11:10:54 UTC (rev 46184)
@@ -1756,7 +1756,7 @@
 {
 	PointerRNA imfptr = RNA_pointer_get(ptr, "format");
 	PointerRNA active_input_ptr, op_ptr;
-	uiLayout *col, *row;
+	uiLayout *row;
 	int active_index;
 	int multilayer = (RNA_enum_get(&imfptr, "file_format") == R_IMF_IMTYPE_MULTILAYER);
 	

Modified: trunk/blender/source/blender/editors/space_view3d/drawmesh.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/drawmesh.c	2012-05-02 10:52:29 UTC (rev 46183)
+++ trunk/blender/source/blender/editors/space_view3d/drawmesh.c	2012-05-02 11:10:54 UTC (rev 46184)
@@ -933,7 +933,7 @@
 		return;
 	}
 	else if (ob->mode & (OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT)) {
-		draw_mesh_paint(scene, v3d, rv3d, ob, dm, draw_flags);
+		draw_mesh_paint(rv3d, ob, dm, draw_flags);
 		return;
 	}
 
@@ -1002,7 +1002,7 @@
 
 /* Vertex Paint and Weight Paint */
 
-void draw_mesh_paint(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, DerivedMesh *dm, int draw_flags)
+void draw_mesh_paint(RegionView3D *rv3d, Object *ob, DerivedMesh *dm, int draw_flags)
 {
 	DMSetDrawOptions facemask = NULL;
 	Mesh *me = ob->data;

Modified: trunk/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/drawobject.c	2012-05-02 10:52:29 UTC (rev 46183)
+++ trunk/blender/source/blender/editors/space_view3d/drawobject.c	2012-05-02 11:10:54 UTC (rev 46184)
@@ -3474,7 +3474,7 @@
 		}
 	}
 	else if (dt == OB_PAINT) {
-		draw_mesh_paint(scene, v3d, rv3d, ob, dm, draw_flags);
+		draw_mesh_paint(rv3d, ob, dm, draw_flags);
 	}
 	
 	/* set default draw color back for wire or for draw-extra later on */

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_intern.h	2012-05-02 10:52:29 UTC (rev 46183)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_intern.h	2012-05-02 11:10:54 UTC (rev 46184)
@@ -130,7 +130,7 @@
 
 /* drawmesh.c */
 void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, struct Object *ob, struct DerivedMesh *dm, int faceselect);
-void draw_mesh_paint(Scene *scene, View3D *v3d, RegionView3D *rv3d, struct Object *ob, struct DerivedMesh *dm, int faceselect);
+void draw_mesh_paint(RegionView3D *rv3d, struct Object *ob, struct DerivedMesh *dm, int faceselect);
 
 /* view3d_draw.c */
 void view3d_main_area_draw(const struct bContext *C, struct ARegion *ar);




More information about the Bf-blender-cvs mailing list