Use const for sculpt vars
authorCampbell Barton <ideasman42@gmail.com>
Sat, 11 Jul 2015 17:49:47 +0000 (03:49 +1000)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 11 Jul 2015 17:50:39 +0000 (03:50 +1000)
resolves building with gcc4.9

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

index 9cefdd4f28ea319cedf0ed7d32e2d76bae8871f3..0832e2498d4df692eff663b71549f40819e1da0c 100644 (file)
@@ -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 */
index a015e8427c276ca7070dd8be6577b463d4cb57d9..361557633cbcb335f070ccbd31ea0827ea9b2f93 100644 (file)
@@ -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;
index 5bb90af889e55ce38eb4671cc7db5534642b44d5..74897d6f4cdefad05a78f89b2344051b1cc62554 100644 (file)
@@ -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. */
index 52a60347f9fc514112750d83ab4b0b6a297f8fad..2f1d4cd4194814a63f4781d7f9b37068802b884e 100644 (file)
@@ -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;
                        
index 2f0957c3b60a39cb99b2431cc109efe41bdc8804..c4556a5e145ed7bccf8302af885662056cc77bb3 100644 (file)
@@ -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;
                BKE_pbvh_node_num_verts(ss->pbvh, node, NULL, &allvert);
                BKE_pbvh_node_get_verts(ss->pbvh, node, &vert_indices, NULL);
                memcpy(unode->index, vert_indices, sizeof(int) * unode->totvert);