From: Chia-I Wu Date: Mon, 25 Jan 2010 03:39:44 +0000 (+0800) Subject: egl: Make resource void pointer in _eglCheckResource. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=dbb866ab33862defc2749134805bafebf323fd11;p=mesa.git egl: Make resource void pointer in _eglCheckResource. This emphasizes the fact that the resource to be checked could really be invalid and have an unknown type. --- diff --git a/src/egl/main/eglcontext.h b/src/egl/main/eglcontext.h index b81dc1ed820..be00642d134 100644 --- a/src/egl/main/eglcontext.h +++ b/src/egl/main/eglcontext.h @@ -95,9 +95,8 @@ _eglUnlinkContext(_EGLContext *ctx) static INLINE _EGLContext * _eglLookupContext(EGLContext context, _EGLDisplay *dpy) { - _EGLResource *res = (_EGLResource *) context; _EGLContext *ctx = (_EGLContext *) context; - if (!res || !dpy || !_eglCheckResource(res, _EGL_RESOURCE_CONTEXT, dpy)) + if (!dpy || !_eglCheckResource((void *) ctx, _EGL_RESOURCE_CONTEXT, dpy)) ctx = NULL; return ctx; } diff --git a/src/egl/main/egldisplay.c b/src/egl/main/egldisplay.c index c978adb47f5..74c655df411 100644 --- a/src/egl/main/egldisplay.c +++ b/src/egl/main/egldisplay.c @@ -214,12 +214,15 @@ _eglCheckDisplayHandle(EGLDisplay dpy) * own the resource. */ EGLBoolean -_eglCheckResource(_EGLResource *res, _EGLResourceType type, _EGLDisplay *dpy) +_eglCheckResource(void *res, _EGLResourceType type, _EGLDisplay *dpy) { _EGLResource *list = dpy->ResourceLists[type]; + if (!res) + return EGL_FALSE; + while (list) { - if (res == list) { + if (res == (void *) list) { assert(list->Display == dpy); break; } diff --git a/src/egl/main/egldisplay.h b/src/egl/main/egldisplay.h index 70fe29513c1..5d44eb1ea88 100644 --- a/src/egl/main/egldisplay.h +++ b/src/egl/main/egldisplay.h @@ -107,7 +107,7 @@ _eglCheckDisplayHandle(EGLDisplay dpy); extern EGLBoolean -_eglCheckResource(_EGLResource *res, _EGLResourceType type, _EGLDisplay *dpy); +_eglCheckResource(void *res, _EGLResourceType type, _EGLDisplay *dpy); #else /* !_EGL_SKIP_HANDLE_CHECK */ @@ -122,9 +122,9 @@ _eglCheckDisplayHandle(EGLDisplay dpy) static INLINE EGLBoolean -_eglCheckResource(_EGLResource *res, _EGLResourceType type, _EGLDisplay *dpy) +_eglCheckResource(void *res, _EGLResourceType type, _EGLDisplay *dpy); { - return (res->Display == dpy); + return (((_EGLResource *) res)->Display == dpy); } diff --git a/src/egl/main/eglimage.h b/src/egl/main/eglimage.h index 026b10307de..43107c23e9f 100644 --- a/src/egl/main/eglimage.h +++ b/src/egl/main/eglimage.h @@ -61,9 +61,8 @@ _eglUnlinkImage(_EGLImage *img) static INLINE _EGLImage * _eglLookupImage(EGLImageKHR image, _EGLDisplay *dpy) { - _EGLResource *res = (_EGLResource *) image; _EGLImage *img = (_EGLImage *) image; - if (!res || !dpy || !_eglCheckResource(res, _EGL_RESOURCE_IMAGE, dpy)) + if (!dpy || !_eglCheckResource((void *) img, _EGL_RESOURCE_IMAGE, dpy)) img = NULL; return img; } diff --git a/src/egl/main/eglsurface.h b/src/egl/main/eglsurface.h index da07133c2c1..f1642356b0b 100644 --- a/src/egl/main/eglsurface.h +++ b/src/egl/main/eglsurface.h @@ -141,9 +141,8 @@ _eglUnlinkSurface(_EGLSurface *surf) static INLINE _EGLSurface * _eglLookupSurface(EGLSurface surface, _EGLDisplay *dpy) { - _EGLResource *res = (_EGLResource *) surface; _EGLSurface *surf = (_EGLSurface *) surface; - if (!res || !dpy || !_eglCheckResource(res, _EGL_RESOURCE_SURFACE, dpy)) + if (!dpy || !_eglCheckResource((void *) surf, _EGL_RESOURCE_SURFACE, dpy)) surf = NULL; return surf; }