[Mesa-dev] [PATCH 07/32] gbm: Export a per plane getter for stride

Daniel Stone daniel at fooishbar.org
Thu Jan 12 18:58:50 UTC 2017


Hi,

On 3 January 2017 at 02:36, Ben Widawsky <ben at bwidawsk.net> wrote:
>  static uint32_t
>  gbm_dri_bo_get_stride(struct gbm_bo *_bo, int plane)
>  {
> -   return _bo->stride;
> +   struct gbm_dri_device *dri = gbm_dri_device(_bo->gbm);
> +   struct gbm_dri_bo *bo = gbm_dri_bo(_bo);
> +   __DRIimage *image;
> +   int stride = 0;
> +
> +   if (!dri->image || dri->image->base.version < 11 || !dri->image->fromPlanar) {
> +      errno = ENOSYS;
> +      return 0;
> +   }
> +
> +   if (bo->image == NULL)
> +      return _bo->stride;
> +
> +   if (plane >= get_number_planes(dri, bo->image))
> +      return 0;

Move the if (!bo->image) check below get_number_planes, otherwise you
can pass silly plane indices and it'll always succeed.

Cheers,
Daniel


More information about the mesa-dev mailing list