[Mesa-dev] [PATCH 05/10] gbm: handle queryImage() failure through rest of gbm_dri_bo_import()

Jakob Bornecrantz jakob.bornecrantz at collabora.com
Mon Oct 16 20:12:12 UTC 2017


On Mon, Oct 16, 2017 at 5:04 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> From: Emil Velikov <emil.velikov at collabora.com>
>
> Fixes: 6a7dea93fa7 ("dri: Rework planar image interface")
> Cc: Jakob Bornecrantz <jakob.bornecrantz at collabora.co.uk>
> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>

Reviewed-by: Jakob Bornecrantz <jakob.bornecrantz at collabora.com>

Cheers, Jakob.

> ---
>  src/gbm/backends/dri/gbm_dri.c | 23 +++++++++++++++--------
>  1 file changed, 15 insertions(+), 8 deletions(-)
>
> diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c
> index 9c9066e6661..a6c80cf1ec7 100644
> --- a/src/gbm/backends/dri/gbm_dri.c
> +++ b/src/gbm/backends/dri/gbm_dri.c
> @@ -1048,14 +1048,21 @@ gbm_dri_bo_import(struct gbm_device *gbm,
>     bo->base.gbm = gbm;
>     bo->base.format = gbm_format;
>
> -   dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_WIDTH,
> -                          (int*)&bo->base.width);
> -   dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HEIGHT,
> -                          (int*)&bo->base.height);
> -   dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_STRIDE,
> -                          (int*)&bo->base.stride);
> -   dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HANDLE,
> -                          &bo->base.handle.s32);
> +   query = dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_WIDTH,
> +                                  (int*)&bo->base.width);
> +   query &= dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HEIGHT,
> +                                   (int*)&bo->base.height);
> +   query &= dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_STRIDE,
> +                                   (int*)&bo->base.stride);
> +   query &= dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HANDLE,
> +                                   &bo->base.handle.s32);
> +
> +   if (!query) {
> +      errno = EINVAL;
> +      dri->image->destroyImage(bo->image);
> +      free(bo);
> +      return NULL;
> +   }
>
>     return &bo->base;
>  }
> --
> 2.14.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list