gallium: don't use flexible array members in drivers for vertex elements cso
authorRoland Scheidegger <sroland@vmware.com>
Tue, 9 Mar 2010 13:23:00 +0000 (14:23 +0100)
committerRoland Scheidegger <sroland@vmware.com>
Tue, 9 Mar 2010 13:23:00 +0000 (14:23 +0100)
While this c99 feature should work with most compilers, valgrind doesn't
really like it, and this only really saves some memory, we don't do this
in similar occasions (like the blend state) neither.

src/gallium/drivers/cell/ppu/cell_context.h
src/gallium/drivers/cell/ppu/cell_state_vertex.c
src/gallium/drivers/i915/i915_context.h
src/gallium/drivers/i915/i915_state.c
src/gallium/drivers/i965/brw_pipe_vertex.c
src/gallium/drivers/llvmpipe/lp_state.h
src/gallium/drivers/llvmpipe/lp_state_vertex.c
src/gallium/drivers/softpipe/sp_state.h
src/gallium/drivers/softpipe/sp_state_vertex.c
src/gallium/drivers/svga/svga_context.h
src/gallium/drivers/svga/svga_pipe_vertex.c

index 84ad0f3..584f355 100644 (file)
@@ -96,7 +96,7 @@ struct cell_buffer_list
 struct cell_velems_state
 {
    unsigned count;
-   struct pipe_vertex_element velem[];
+   struct pipe_vertex_element velem[PIPE_MAX_ATTRIBS];
 }
 
 /**
index 35c919f..d3efb8e 100644 (file)
@@ -43,7 +43,7 @@ cell_create_vertex_elements_state(struct pipe_context *pipe,
 {
    struct cell_velems_state *velems;
    assert(count <= PIPE_MAX_ATTRIBS);
-   velems = (struct cell_velems_state *) MALLOC(sizeof(struct cell_velems_state) + count * sizeof(*attribs));
+   velems = (struct cell_velems_state *) MALLOC(sizeof(struct cell_velems_state));
    if (velems) {
       velems->count = count;
       memcpy(velems->velem, attribs, sizeof(*attribs) * count);
index 369c63e..3e383aa 100644 (file)
@@ -189,7 +189,7 @@ struct i915_sampler_state {
 
 struct i915_velems_state {
    unsigned count;
-   struct pipe_vertex_element velem[];
+   struct pipe_vertex_element velem[PIPE_MAX_ATTRIBS];
 };
 
 struct i915_texture {
index 4640606..8927dfc 100644 (file)
@@ -749,7 +749,7 @@ i915_create_vertex_elements_state(struct pipe_context *pipe,
 {
    struct i915_velems_state *velems;
    assert(count <= PIPE_MAX_ATTRIBS);
-   velems = (struct i915_velems_state *) MALLOC(sizeof(struct i915_velems_state) + count * sizeof(*attribs));
+   velems = (struct i915_velems_state *) MALLOC(sizeof(struct i915_velems_state));
    if (velems) {
       velems->count = count;
       memcpy(velems->velem, attribs, sizeof(*attribs) * count);
index 3d84fb8..d6a8408 100644 (file)
@@ -215,7 +215,7 @@ static void* brw_create_vertex_elements_state( struct pipe_context *pipe,
                                                const struct pipe_vertex_element *attribs )
 {
    /* note: for the brw_swtnl.c code (if ever we need draw fallback) we'd also need
-      store the original data */
+      to store the original data */
    struct brw_context *brw = brw_context(pipe);
    struct brw_vertex_element_packet *velems;
    assert(count <= BRW_VEP_MAX);
index 57f5bd0..6dbdc19 100644 (file)
@@ -121,7 +121,7 @@ struct lp_vertex_shader {
 
 struct lp_velems_state {
    unsigned count;
-   struct pipe_vertex_element velem[];
+   struct pipe_vertex_element velem[PIPE_MAX_ATTRIBS];
 };
 
 
index 5a9b6d5..2ddd110 100644 (file)
@@ -42,7 +42,7 @@ llvmpipe_create_vertex_elements_state(struct pipe_context *pipe,
 {
    struct lp_velems_state *velems;
    assert(count <= PIPE_MAX_ATTRIBS);
-   velems = (struct lp_velems_state *) MALLOC(sizeof(struct lp_velems_state) + count * sizeof(*attribs));
+   velems = (struct lp_velems_state *) MALLOC(sizeof(struct lp_velems_state));
    if (velems) {
       velems->count = count;
       memcpy(velems->velem, attribs, sizeof(*attribs) * count);
index a6b9a84..6b01c0f 100644 (file)
@@ -102,7 +102,7 @@ struct sp_geometry_shader {
 
 struct sp_velems_state {
    unsigned count;
-   struct pipe_vertex_element velem[];
+   struct pipe_vertex_element velem[PIPE_MAX_ATTRIBS];
 };
 
 
index e7dc3d0..a151758 100644 (file)
@@ -43,7 +43,7 @@ softpipe_create_vertex_elements_state(struct pipe_context *pipe,
 {
    struct sp_velems_state *velems;
    assert(count <= PIPE_MAX_ATTRIBS);
-   velems = (struct sp_velems_state *) MALLOC(sizeof(struct sp_velems_state) + count * sizeof(*attribs));
+   velems = (struct sp_velems_state *) MALLOC(sizeof(struct sp_velems_state));
    if (velems) {
       velems->count = count;
       memcpy(velems->velem, attribs, sizeof(*attribs) * count);
index 4d9f009..791d30e 100644 (file)
@@ -171,7 +171,7 @@ struct svga_sampler_state {
 
 struct svga_velems_state {
    unsigned count;
-   struct pipe_vertex_element velem[];
+   struct pipe_vertex_element velem[PIPE_MAX_ATTRIBS];
 };
 
 /* Use to calculate differences between state emitted to hardware and
index 979deb1..d4a1280 100644 (file)
@@ -73,7 +73,7 @@ svga_create_vertex_elements_state(struct pipe_context *pipe,
 {
    struct svga_velems_state *velems;
    assert(count <= PIPE_MAX_ATTRIBS);
-   velems = (struct svga_velems_state *) MALLOC(sizeof(struct svga_velems_state) + count * sizeof(*attribs));
+   velems = (struct svga_velems_state *) MALLOC(sizeof(struct svga_velems_state));
    if (velems) {
       velems->count = count;
       memcpy(velems->velem, attribs, sizeof(*attribs) * count);