[Mesa-dev] [PATCH 10/10] mesa: add missing null checks in _tnl_register_fastpath()

Ian Romanick idr at freedesktop.org
Mon Feb 17 12:55:59 PST 2014


On 02/17/2014 08:21 AM, Juha-Pekka Heikkila wrote:
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
> ---
>  src/mesa/tnl/t_vertex.c | 41 ++++++++++++++++++++++++-----------------
>  1 file changed, 24 insertions(+), 17 deletions(-)
> 
> diff --git a/src/mesa/tnl/t_vertex.c b/src/mesa/tnl/t_vertex.c
> index b3deac0..a122334 100644
> --- a/src/mesa/tnl/t_vertex.c
> +++ b/src/mesa/tnl/t_vertex.c
> @@ -81,24 +81,31 @@ void _tnl_register_fastpath( struct tnl_clipspace *vtx,
>  			     GLboolean match_strides )
>  {
>     struct tnl_clipspace_fastpath *fastpath = CALLOC_STRUCT(tnl_clipspace_fastpath);
> -   GLuint i;
> -
> -   fastpath->vertex_size = vtx->vertex_size;
> -   fastpath->attr_count = vtx->attr_count;
> -   fastpath->match_strides = match_strides;
> -   fastpath->func = vtx->emit;
> -   fastpath->attr =
> -      malloc(vtx->attr_count * sizeof(fastpath->attr[0]));
> -
> -   for (i = 0; i < vtx->attr_count; i++) {
> -      fastpath->attr[i].format = vtx->attr[i].format;
> -      fastpath->attr[i].stride = vtx->attr[i].inputstride;
> -      fastpath->attr[i].size = vtx->attr[i].inputsize;
> -      fastpath->attr[i].offset = vtx->attr[i].vertoffset;
> -   }
>  
> -   fastpath->next = vtx->fastpath;
> -   vtx->fastpath = fastpath;
> +   if (fastpath != NULL) {

I'd prefer this as

   if (fastpath == NULL)
      return;

It's a lot less code churn.

With that change,

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

> +      GLuint i;
> +
> +      fastpath->vertex_size = vtx->vertex_size;
> +      fastpath->attr_count = vtx->attr_count;
> +      fastpath->match_strides = match_strides;
> +      fastpath->func = vtx->emit;
> +      fastpath->attr = malloc(vtx->attr_count * sizeof(fastpath->attr[0]));
> +
> +      if (fastpath->attr == NULL) {
> +         FREE(fastpath);
> +         return;
> +      }
> +
> +      for (i = 0; i < vtx->attr_count; i++) {
> +         fastpath->attr[i].format = vtx->attr[i].format;
> +         fastpath->attr[i].stride = vtx->attr[i].inputstride;
> +         fastpath->attr[i].size = vtx->attr[i].inputsize;
> +         fastpath->attr[i].offset = vtx->attr[i].vertoffset;
> +      }
> +
> +      fastpath->next = vtx->fastpath;
> +      vtx->fastpath = fastpath;
> +   }
>  }
>  
>  



More information about the mesa-dev mailing list