On 09/12/2016 04:19 PM, Adam Jackson wrote:
From: Kyle Brenneman <kbrenne...@nvidia.com>

---
  src/egl/main/eglapi.c | 16 ++++++++++++----
  1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
index a74e5e4..658d0d7 100644
--- a/src/egl/main/eglapi.c
+++ b/src/egl/main/eglapi.c
@@ -1309,11 +1309,10 @@ eglReleaseThread(void)
  }
-static EGLImage EGLAPIENTRY
-eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target,
+static EGLImage
+_eglCreateImageCommon(_EGLDisplay *disp, EGLContext ctx, EGLenum target,
                    EGLClientBuffer buffer, const EGLint *attr_list)
  {
-   _EGLDisplay *disp = _eglLockDisplay(dpy);
     _EGLContext *context = _eglLookupContext(ctx, disp);
     _EGLDriver *drv;
     _EGLImage *img;
@@ -1337,18 +1336,27 @@ eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, 
EGLenum target,
     RETURN_EGL_EVAL(disp, ret);
  }
+static EGLImage EGLAPIENTRY
+eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target,
+                  EGLClientBuffer buffer, const EGLint *attr_list)
+{
+   _EGLDisplay *disp = _eglLockDisplay(dpy);
+   return _eglCreateImageCommon(disp, ctx, target, buffer, attr_list);
+}
+
EGLImage EGLAPIENTRY
  eglCreateImage(EGLDisplay dpy, EGLContext ctx, EGLenum target,
                 EGLClientBuffer buffer, const EGLAttrib *attr_list)
  {
+   _EGLDisplay *disp = _eglLockDisplay(dpy);
     EGLImage image;
     EGLint *int_attribs = _eglConvertAttribsToInt(attr_list);
if (attr_list && !int_attribs)
        RETURN_EGL_ERROR(NULL, EGL_BAD_ALLOC, EGL_NO_IMAGE);
The RETURN_EGL_ERROR macro here should take the disp pointer so that it unlocks the display before returning.
- image = eglCreateImageKHR(dpy, ctx, target, buffer, int_attribs);
+   image = _eglCreateImageCommon(disp, ctx, target, buffer, int_attribs);
     free(int_attribs);
     return image;
  }

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to