From 5ed87bbc92b8034b14060d5170c3d82bfce54fb7 Mon Sep 17 00:00:00 2001 From: Brendan King Date: Fri, 1 Dec 2017 08:31:15 +0000 Subject: [PATCH 26/50] gbm: don't assert if DRI context creation fails If the DRI backend fails to create a DRI context, return an error, rather than asserting. --- src/gbm/backends/dri/gbm_dri.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c index ca865f4df9c..f9adbc5c001 100644 --- a/src/gbm/backends/dri/gbm_dri.c +++ b/src/gbm/backends/dri/gbm_dri.c @@ -1224,8 +1224,11 @@ gbm_dri_bo_map(struct gbm_bo *_bo, if (!dri->context) dri->context = dri->dri2->createNewContext(dri->screen, NULL, NULL, NULL); - assert(dri->context); mtx_unlock(&dri->mutex); + if (!dri->context) { + errno = ENOSYS; + return NULL; + } /* GBM flags and DRI flags are the same, so just pass them on */ return dri->image->mapImage(dri->context, bo->image, x, y, @@ -1353,8 +1356,11 @@ gbm_dri_bo_blit(struct gbm_bo *_dst_bo, struct gbm_bo *_src_bo, if (!dri->context) dri->context = dri->dri2->createNewContext(dri->screen, NULL, NULL, NULL); - assert(dri->context); mtx_unlock(&dri->mutex); + if (!dri->context) { + errno = ENOSYS; + return 0; + } /* GBM flags and DRI flags are the same, so just pass them on */ dri->image->blitImage(dri->context, dst_bo->image, src_bo->image, -- 2.17.1