egl: Make resource void pointer in _eglCheckResource.
authorChia-I Wu <olvaffe@gmail.com>
Mon, 25 Jan 2010 03:39:44 +0000 (11:39 +0800)
committerChia-I Wu <olvaffe@gmail.com>
Mon, 25 Jan 2010 03:44:13 +0000 (11:44 +0800)
This emphasizes the fact that the resource to be checked could really be
invalid and have an unknown type.

src/egl/main/eglcontext.h
src/egl/main/egldisplay.c
src/egl/main/egldisplay.h
src/egl/main/eglimage.h
src/egl/main/eglsurface.h

index b81dc1ed8207554417625f6cca180a5c65994c3c..be00642d1349b3bbfb4805916d631f98d1a2d83a 100644 (file)
@@ -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;
 }
index c978adb47f5eef26ecec39b230ca7c71848eefc9..74c655df411d738b3227fc18d0b592681b208839 100644 (file)
@@ -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;
       }
index 70fe29513c1dafc8e369f6654c0573b4a5193e1e..5d44eb1ea88f35eca4c8148de45c01c35356a75d 100644 (file)
@@ -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);
 }
 
 
index 026b10307dedc4b498539d177a045c6f5ea9f183..43107c23e9fcd055f17a3aafacc2123cb87cee10 100644 (file)
@@ -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;
 }
index da07133c2c1e95368586d18fb9dc0c96f091a924..f1642356b0b173f9fd7143afd1dfaaeae76466ed 100644 (file)
@@ -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;
 }