[Mesa-dev] [PATCH 3/3] mesa: Deal with size differences between GLuint and GLhandleARB in GetAttachedObjectsARB

Nicolai Hähnle nhaehnle at gmail.com
Thu Jan 21 07:51:28 PST 2016


Wow... did you actually run into that crash?

On 20.01.2016 20:14, Jeremy Huddleston Sequoia wrote:
> Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
> ---
>   src/mesa/main/shaderapi.c | 12 +++++++++++-
>   1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
> index a988f41..75fc17c 100644
> --- a/src/mesa/main/shaderapi.c
> +++ b/src/mesa/main/shaderapi.c
> @@ -1374,10 +1374,20 @@ _mesa_DetachShader(GLuint program, GLuint shader)
>
>   void GLAPIENTRY
>   _mesa_GetAttachedObjectsARB(GLhandleARB container, GLsizei maxCount,
> -                            GLsizei * count, GLhandleARB * obj)
> +                            GLsizei * count, GLhandleARB * objARB)
>   {
> +   int i;
> +   GLuint *obj = calloc(maxCount, sizeof(GLuint));
> +   assert(obj);
> +

Is there a precedent for using assert in this way? It feels wrong to me, 
better set GL_OUT_OF_MEMORY.

>      GET_CURRENT_CONTEXT(ctx);
>      get_attached_shaders(ctx, container, maxCount, count, obj);
> +
> +   for (i=0 ; i < *count; i++) {
> +      objARB[i] = (GLhandleARB)obj[i];

Since this can only ever be a widening of the type, you don't really 
need the cast here.

Nicolai

> +   }
> +
> +   free(obj);
>   }
>
>
>


More information about the mesa-dev mailing list