diff options
-rw-r--r-- | src/egl/drivers/dri2/egl_dri2.c | 25 | ||||
-rw-r--r-- | src/egl/main/eglimage.c | 21 | ||||
-rw-r--r-- | src/egl/main/eglimage.h | 2 |
3 files changed, 18 insertions, 30 deletions
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index e55bff6dbbf..c96f0e0d21b 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -1719,7 +1719,6 @@ dri2_create_image_wayland_wl_buffer(_EGLDisplay *disp, _EGLContext *ctx, const struct wl_drm_components_descriptor *f; __DRIimage *dri_image; _EGLImageAttribs attrs; - EGLint err; int32_t plane; buffer = wayland_drm_buffer_get(dri2_dpy->wl_server_drm, @@ -1727,13 +1726,10 @@ dri2_create_image_wayland_wl_buffer(_EGLDisplay *disp, _EGLContext *ctx, if (!buffer) return NULL; - err = _eglParseImageAttribList(&attrs, disp, attr_list); - plane = attrs.PlaneWL; - if (err != EGL_SUCCESS) { - _eglError(EGL_BAD_PARAMETER, "dri2_create_image_wayland_wl_buffer"); + if (!_eglParseImageAttribList(&attrs, disp, attr_list)) return NULL; - } + plane = attrs.PlaneWL; f = buffer->driver_format; if (plane < 0 || plane >= f->nplanes) { _eglError(EGL_BAD_PARAMETER, @@ -1819,7 +1815,7 @@ dri2_create_image_khr_texture(_EGLDisplay *disp, _EGLContext *ctx, return EGL_NO_IMAGE_KHR; } - if (_eglParseImageAttribList(&attrs, disp, attr_list) != EGL_SUCCESS) + if (!_eglParseImageAttribList(&attrs, disp, attr_list)) return EGL_NO_IMAGE_KHR; switch (target) { @@ -1906,8 +1902,7 @@ dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx, name = (EGLint) (uintptr_t) buffer; - err = _eglParseImageAttribList(&attrs, disp, attr_list); - if (err != EGL_SUCCESS) + if (!_eglParseImageAttribList(&attrs, disp, attr_list)) return NULL; if (attrs.Width <= 0 || attrs.Height <= 0 || @@ -2199,7 +2194,6 @@ dri2_create_image_dma_buf(_EGLDisplay *disp, _EGLContext *ctx, { struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); _EGLImage *res; - EGLint err; _EGLImageAttribs attrs; __DRIimage *dri_image; unsigned num_fds; @@ -2221,11 +2215,8 @@ dri2_create_image_dma_buf(_EGLDisplay *disp, _EGLContext *ctx, return NULL; } - err = _eglParseImageAttribList(&attrs, disp, attr_list); - if (err != EGL_SUCCESS) { - _eglError(err, "bad attribute"); + if (!_eglParseImageAttribList(&attrs, disp, attr_list)) return NULL; - } if (!dri2_check_dma_buf_attribs(&attrs)) return NULL; @@ -2298,7 +2289,6 @@ dri2_create_drm_image_mesa(_EGLDriver *drv, _EGLDisplay *disp, _EGLImageAttribs attrs; unsigned int dri_use, valid_mask; int format; - EGLint err = EGL_SUCCESS; (void) drv; @@ -2307,11 +2297,8 @@ dri2_create_drm_image_mesa(_EGLDriver *drv, _EGLDisplay *disp, return EGL_NO_IMAGE_KHR; } - err = _eglParseImageAttribList(&attrs, disp, attr_list); - if (err != EGL_SUCCESS) { - _eglError(EGL_BAD_PARAMETER, __func__); + if (!_eglParseImageAttribList(&attrs, disp, attr_list)) return EGL_NO_IMAGE_KHR; - } if (attrs.Width <= 0 || attrs.Height <= 0) { _eglError(EGL_BAD_PARAMETER, __func__); diff --git a/src/egl/main/eglimage.c b/src/egl/main/eglimage.c index 7587a4be4a3..619e1a1e5db 100644 --- a/src/egl/main/eglimage.c +++ b/src/egl/main/eglimage.c @@ -30,14 +30,18 @@ #include <assert.h> #include <string.h> +#include "eglcurrent.h" #include "eglimage.h" #include "egllog.h" /** - * Parse the list of image attributes and return the proper error code. + * Parse the list of image attributes. + * + * Returns EGL_TRUE on success and EGL_FALSE otherwise. + * Function calls _eglError to set the correct error code. */ -EGLint +EGLBoolean _eglParseImageAttribList(_EGLImageAttribs *attrs, _EGLDisplay *dpy, const EGLint *attrib_list) { @@ -48,7 +52,7 @@ _eglParseImageAttribList(_EGLImageAttribs *attrs, _EGLDisplay *dpy, memset(attrs, 0, sizeof(*attrs)); if (!attrib_list) - return err; + return EGL_TRUE; for (i = 0; attrib_list[i] != EGL_NONE; i++) { EGLint attr = attrib_list[i++]; @@ -233,15 +237,12 @@ _eglParseImageAttribList(_EGLImageAttribs *attrs, _EGLDisplay *dpy, break; default: - /* unknown attrs are ignored */ - break; + return _eglError(EGL_BAD_ATTRIBUTE, __func__); } - if (err != EGL_SUCCESS) { - _eglLog(_EGL_DEBUG, "bad image attribute 0x%04x", attr); - break; - } + if (err != EGL_SUCCESS) + return _eglError(err, __func__); } - return err; + return EGL_TRUE; } diff --git a/src/egl/main/eglimage.h b/src/egl/main/eglimage.h index eef98604e7a..87517921320 100644 --- a/src/egl/main/eglimage.h +++ b/src/egl/main/eglimage.h @@ -91,7 +91,7 @@ struct _egl_image }; -extern EGLint +EGLBoolean _eglParseImageAttribList(_EGLImageAttribs *attrs, _EGLDisplay *dpy, const EGLint *attrib_list); |