[Bf-blender-cvs] [17ebbc0] master: Use const for sculpt vars

Campbell Barton noreply at git.blender.org
Sat Jul 11 19:55:11 CEST 2015


Commit: 17ebbc06e2ea6324c27e0a10ae088c271b66d0cc
Author: Campbell Barton
Date:   Sun Jul 12 03:49:47 2015 +1000
Branches: master
https://developer.blender.org/rB17ebbc06e2ea6324c27e0a10ae088c271b66d0cc

Use const for sculpt vars

resolves building with gcc4.9

===================================================================

M	source/blender/blenkernel/BKE_pbvh.h
M	source/blender/blenkernel/intern/pbvh.c
M	source/blender/blenkernel/intern/pbvh_intern.h
M	source/blender/editors/sculpt_paint/paint_hide.c
M	source/blender/editors/sculpt_paint/sculpt_undo.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_pbvh.h b/source/blender/blenkernel/BKE_pbvh.h
index 9cefdd4..0832e24 100644
--- a/source/blender/blenkernel/BKE_pbvh.h
+++ b/source/blender/blenkernel/BKE_pbvh.h
@@ -174,13 +174,16 @@ void BKE_pbvh_node_mark_normals_update(PBVHNode *node);
 void BKE_pbvh_node_mark_topology_update(PBVHNode *node);
 void BKE_pbvh_node_fully_hidden_set(PBVHNode *node, int fully_hidden);
 
-void BKE_pbvh_node_get_grids(PBVH *bvh, PBVHNode *node,
-                             int **grid_indices, int *totgrid, int *maxgrid, int *gridsize,
-                             struct CCGElem ***grid_elems);
-void BKE_pbvh_node_num_verts(PBVH *bvh, PBVHNode *node,
-                             int *uniquevert, int *totvert);
-void BKE_pbvh_node_get_verts(PBVH *bvh, PBVHNode *node,
-                             int **vert_indices, struct MVert **verts);
+void BKE_pbvh_node_get_grids(
+        PBVH *bvh, PBVHNode *node,
+        int **grid_indices, int *totgrid, int *maxgrid, int *gridsize,
+        struct CCGElem ***grid_elems);
+void BKE_pbvh_node_num_verts(
+        PBVH *bvh, PBVHNode *node,
+        int *r_uniquevert, int *r_totvert);
+void BKE_pbvh_node_get_verts(
+        PBVH *bvh, PBVHNode *node,
+        const int **r_vert_indices, struct MVert **r_verts);
 
 void BKE_pbvh_node_get_BB(PBVHNode *node, float bb_min[3], float bb_max[3]);
 void BKE_pbvh_node_get_original_BB(PBVHNode *node, float bb_min[3], float bb_max[3]);
@@ -252,7 +255,7 @@ typedef struct PBVHVertexIter {
 	/* mesh */
 	struct MVert *mverts;
 	int totvert;
-	int *vert_indices;
+	const int *vert_indices;
 	float *vmask;
 
 	/* bmesh */
diff --git a/source/blender/blenkernel/intern/pbvh.c b/source/blender/blenkernel/intern/pbvh.c
index a015e84..3615576 100644
--- a/source/blender/blenkernel/intern/pbvh.c
+++ b/source/blender/blenkernel/intern/pbvh.c
@@ -280,6 +280,8 @@ static void build_mesh_leaf_node(PBVH *bvh, PBVHNode *node)
 	GHash *map;
 	int i, j, totface;
 	bool has_visible = false;
+	int (*face_vert_indices)[4];
+	int *vert_indices;
 
 	node->uniq_verts = node->face_verts = 0;
 	totface = node->totprim;
@@ -287,15 +289,17 @@ static void build_mesh_leaf_node(PBVH *bvh, PBVHNode *node)
 	/* reserve size is rough guess */
 	map = BLI_ghash_int_new_ex("build_mesh_leaf_node gh", 2 * totface);
 
-	node->face_vert_indices = MEM_callocN(sizeof(int) * 4 * totface,
-	                                      "bvh node face vert indices");
+	face_vert_indices = MEM_callocN(sizeof(int[4]) * totface,
+	                                "bvh node face vert indices");
+
+	node->face_vert_indices = (const int (*)[4])face_vert_indices;
 
 	for (i = 0; i < totface; ++i) {
 		const MFace *f = &bvh->faces[node->prim_indices[i]];
 		int sides = f->v4 ? 4 : 3;
 
 		for (j = 0; j < sides; ++j) {
-			node->face_vert_indices[i][j] =
+			face_vert_indices[i][j] =
 			        map_insert_vert(bvh, map, &node->face_verts,
 			                        &node->uniq_verts, (&f->v1)[j]);
 		}
@@ -304,9 +308,10 @@ static void build_mesh_leaf_node(PBVH *bvh, PBVHNode *node)
 			has_visible = true;
 	}
 
-	node->vert_indices = MEM_callocN(sizeof(int) *
-	                                 (node->uniq_verts + node->face_verts),
-	                                 "bvh node vert indices");
+	vert_indices = MEM_callocN(sizeof(int) *
+	                           (node->uniq_verts + node->face_verts),
+	                           "bvh node vert indices");
+	node->vert_indices = vert_indices;
 
 	/* Build the vertex list, unique verts first */
 	GHASH_ITER (gh_iter, map) {
@@ -316,7 +321,7 @@ static void build_mesh_leaf_node(PBVH *bvh, PBVHNode *node)
 		if (ndx < 0)
 			ndx = -ndx + node->uniq_verts - 1;
 
-		node->vert_indices[ndx] =
+		vert_indices[ndx] =
 		        GET_INT_FROM_POINTER(BLI_ghashIterator_getKey(&gh_iter));
 	}
 
@@ -325,9 +330,9 @@ static void build_mesh_leaf_node(PBVH *bvh, PBVHNode *node)
 		int sides = f->v4 ? 4 : 3;
 		
 		for (j = 0; j < sides; ++j) {
-			if (node->face_vert_indices[i][j] < 0)
-				node->face_vert_indices[i][j] =
-				        -node->face_vert_indices[i][j] +
+			if (face_vert_indices[i][j] < 0)
+				face_vert_indices[i][j] =
+				        -face_vert_indices[i][j] +
 				        node->uniq_verts - 1;
 		}
 	}
@@ -633,9 +638,9 @@ void BKE_pbvh_free(PBVH *bvh)
 			if (node->draw_buffers)
 				GPU_free_pbvh_buffers(node->draw_buffers);
 			if (node->vert_indices)
-				MEM_freeN(node->vert_indices);
+				MEM_freeN((void *)node->vert_indices);
 			if (node->face_vert_indices)
-				MEM_freeN(node->face_vert_indices);
+				MEM_freeN((void *)node->face_vert_indices);
 			BKE_pbvh_node_layer_disp_free(node);
 
 			if (node->bm_faces)
@@ -1016,7 +1021,8 @@ static void pbvh_update_normals(PBVH *bvh, PBVHNode **nodes,
 		PBVHNode *node = nodes[n];
 
 		if (node->flag & PBVH_UpdateNormals) {
-			int i, *verts, totvert;
+			const int *verts;
+			int i, totvert;
 
 			verts = node->vert_indices;
 			totvert = node->uniq_verts;
@@ -1357,51 +1363,62 @@ void BKE_pbvh_node_fully_hidden_set(PBVHNode *node, int fully_hidden)
 		node->flag &= ~PBVH_FullyHidden;
 }
 
-void BKE_pbvh_node_get_verts(PBVH *bvh, PBVHNode *node, int **vert_indices, MVert **verts)
+void BKE_pbvh_node_get_verts(
+        PBVH *bvh, PBVHNode *node,
+        const int **r_vert_indices, MVert **r_verts)
 {
-	if (vert_indices) *vert_indices = node->vert_indices;
-	if (verts) *verts = bvh->verts;
+	if (r_vert_indices) {
+		*r_vert_indices = node->vert_indices;
+	}
+
+	if (r_verts) {
+		*r_verts = bvh->verts;
+	}
 }
 
-void BKE_pbvh_node_num_verts(PBVH *bvh, PBVHNode *node, int *uniquevert, int *totvert)
+void BKE_pbvh_node_num_verts(
+        PBVH *bvh, PBVHNode *node,
+        int *r_uniquevert, int *r_totvert)
 {
 	int tot;
 	
 	switch (bvh->type) {
 		case PBVH_GRIDS:
 			tot = node->totprim * bvh->gridkey.grid_area;
-			if (totvert) *totvert = tot;
-			if (uniquevert) *uniquevert = tot;
+			if (r_totvert) *r_totvert = tot;
+			if (r_uniquevert) *r_uniquevert = tot;
 			break;
 		case PBVH_FACES:
-			if (totvert) *totvert = node->uniq_verts + node->face_verts;
-			if (uniquevert) *uniquevert = node->uniq_verts;
+			if (r_totvert) *r_totvert = node->uniq_verts + node->face_verts;
+			if (r_uniquevert) *r_uniquevert = node->uniq_verts;
 			break;
 		case PBVH_BMESH:
 			tot = BLI_gset_size(node->bm_unique_verts);
-			if (totvert) *totvert = tot + BLI_gset_size(node->bm_other_verts);
-			if (uniquevert) *uniquevert = tot;
+			if (r_totvert) *r_totvert = tot + BLI_gset_size(node->bm_other_verts);
+			if (r_uniquevert) *r_uniquevert = tot;
 			break;
 	}
 }
 
-void BKE_pbvh_node_get_grids(PBVH *bvh, PBVHNode *node, int **grid_indices, int *totgrid, int *maxgrid, int *gridsize, CCGElem ***griddata)
+void BKE_pbvh_node_get_grids(
+        PBVH *bvh, PBVHNode *node,
+        int **r_grid_indices, int *r_totgrid, int *r_maxgrid, int *r_gridsize, CCGElem ***r_griddata)
 {
 	switch (bvh->type) {
 		case PBVH_GRIDS:
-			if (grid_indices) *grid_indices = node->prim_indices;
-			if (totgrid) *totgrid = node->totprim;
-			if (maxgrid) *maxgrid = bvh->totgrid;
-			if (gridsize) *gridsize = bvh->gridkey.grid_size;
-			if (griddata) *griddata = bvh->grids;
+			if (r_grid_indices) *r_grid_indices = node->prim_indices;
+			if (r_totgrid) *r_totgrid = node->totprim;
+			if (r_maxgrid) *r_maxgrid = bvh->totgrid;
+			if (r_gridsize) *r_gridsize = bvh->gridkey.grid_size;
+			if (r_griddata) *r_griddata = bvh->grids;
 			break;
 		case PBVH_FACES:
 		case PBVH_BMESH:
-			if (grid_indices) *grid_indices = NULL;
-			if (totgrid) *totgrid = 0;
-			if (maxgrid) *maxgrid = 0;
-			if (gridsize) *gridsize = 0;
-			if (griddata) *griddata = NULL;
+			if (r_grid_indices) *r_grid_indices = NULL;
+			if (r_totgrid) *r_totgrid = 0;
+			if (r_maxgrid) *r_maxgrid = 0;
+			if (r_gridsize) *r_gridsize = 0;
+			if (r_griddata) *r_griddata = NULL;
 			break;
 	}
 }
@@ -1963,7 +1980,8 @@ void pbvh_vertex_iter_init(PBVH *bvh, PBVHNode *node,
 {
 	struct CCGElem **grids;
 	struct MVert *verts;
-	int *grid_indices, *vert_indices;
+	const int *vert_indices;
+	int *grid_indices;
 	int totgrid, gridsize, uniq_verts, totvert;
 	
 	vi->grid = NULL;
diff --git a/source/blender/blenkernel/intern/pbvh_intern.h b/source/blender/blenkernel/intern/pbvh_intern.h
index 5bb90af..74897d6 100644
--- a/source/blender/blenkernel/intern/pbvh_intern.h
+++ b/source/blender/blenkernel/intern/pbvh_intern.h
@@ -76,7 +76,7 @@ struct PBVHNode {
 	 *
 	 * Used for leaf nodes in a mesh-based PBVH (not multires.)
 	 */
-	int *vert_indices;
+	const int *vert_indices;
 	unsigned int uniq_verts, face_verts;
 
 	/* An array mapping face corners into the vert_indices
@@ -88,7 +88,7 @@ struct PBVHNode {
 	 *
 	 * Used for leaf nodes in a mesh-based PBVH (not multires.)
 	 */
-	int (*face_vert_indices)[4];
+	const int (*face_vert_indices)[4];
 
 	/* Indicates whether this node is a leaf or not; also used for
 	 * marking various updates that need to be applied. */
diff --git a/source/blender/editors/sculpt_paint/paint_hide.c b/source/blender/editors/sculpt_paint/paint_hide.c
index 52a6034..2f1d4cd 100644
--- a/source/blender/editors/sculpt_paint/paint_hide.c
+++ b/source/blender/editors/sculpt_paint/paint_hide.c
@@ -98,7 +98,7 @@ static void partialvis_update_mesh(Object *ob,
 	Mesh *me = ob->data;
 	MVert *mvert;
 	const float *paint_mask;
-	int *vert_indices;
+	const int *vert_indices;
 	int totvert, i;
 	bool any_changed = false, any_visible = false;
 			
diff --git a/source/blender/editors/sculpt_paint/sculpt_undo.c b/source/blender/editors/sculpt_paint/sculpt_undo.c
index 2f0957c..c4556a5 100644
--- a/source/blender/editors/sculpt_paint/sculpt_undo.c
+++ b/source/blender/editors/sculpt_paint/sculpt_undo.c
@@ -695,7 +695,8 @@ static void sculpt_undo_store_hidden(Object *ob, SculptUndoNode *unode)
 	}
 	else {
 		MVert *mvert;
-		int *vert_indices, allvert;
+		const int *vert_indices;
+		int allvert;
 		int i;
 		
 		BKE_pbvh_node_num_verts(pbvh, node, NULL, &allvert);
@@ -846,7 +847,8 @@ SculptUndoNode *sculpt_undo_push_node(Object *ob, PBVHNode *node,
 		memcpy(unode->grids, grids, sizeof(int) * totgrid);
 	}
 	else {
-		int *vert_indices, allvert;
+		const int *vert_indices;
+		int allvert;
 

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list