[Mesa-dev] [PATCH 1/2] gallium: Make pipe_query_result::batch array length non-zero.

Roland Scheidegger sroland at vmware.com
Thu Nov 26 09:42:49 PST 2015


Am 26.11.2015 um 15:31 schrieb Jose Fonseca:
> Zero length arrays are non standard:
> 
>    warning C4200: nonstandard extension used : zero-sized array in struct/union
>    Cannot generate copy-ctor or copy-assignment operator when UDT contains a zero-sized array
> 
> And all code does `N * sizeof query_result->batch[0]`, so it should work
> exactly the same.
> ---
>  src/gallium/include/pipe/p_defines.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h
> index b18eedd..cbf0ba6 100644
> --- a/src/gallium/include/pipe/p_defines.h
> +++ b/src/gallium/include/pipe/p_defines.h
> @@ -822,8 +822,8 @@ union pipe_query_result
>     /* PIPE_QUERY_PIPELINE_STATISTICS */
>     struct pipe_query_data_pipeline_statistics pipeline_statistics;
>  
> -   /* batch queries */
> -   union pipe_numeric_type_union batch[0];
> +   /* batch queries (variable length) */
> +   union pipe_numeric_type_union batch[1];
>  };
>  
>  union pipe_color_union
> 

I guess the nice thing about using zero-sized arrays is that it makes it
really obvious that the length is variable, whereas with size one
someone might assume it's fixed. But you added the comment so I can't
see a better solution.

For the series:
Reviewed-by: Roland Scheidegger <sroland at vmware.com>


More information about the mesa-dev mailing list