OSDN Git Service

egl: Check for null display in handle checking.
authorChia-I Wu <olvaffe@gmail.com>
Wed, 19 Aug 2009 05:00:25 +0000 (13:00 +0800)
committerBrian Paul <brianp@vmware.com>
Fri, 21 Aug 2009 14:34:34 +0000 (08:34 -0600)
The display may be NULL when checking a handle.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
src/egl/main/egldisplay.c
src/egl/main/egldisplay.h

index 30a49a2..9b4227f 100644 (file)
@@ -305,9 +305,10 @@ _eglCheckDisplayHandle(EGLDisplay dpy)
 EGLBoolean
 _eglCheckContextHandle(EGLContext ctx, _EGLDisplay *dpy)
 {
-   _EGLContext *cur;
+   _EGLContext *cur = NULL;
 
-   cur = dpy->ContextList;
+   if (dpy)
+      cur = dpy->ContextList;
    while (cur) {
       if (cur == (_EGLContext *) ctx) {
          assert(cur->Display == dpy);
@@ -325,9 +326,10 @@ _eglCheckContextHandle(EGLContext ctx, _EGLDisplay *dpy)
 EGLBoolean
 _eglCheckSurfaceHandle(EGLSurface surf, _EGLDisplay *dpy)
 {
-   _EGLSurface *cur;
+   _EGLSurface *cur = NULL;
 
-   cur = dpy->SurfaceList;
+   if (dpy)
+      cur = dpy->SurfaceList;
    while (cur) {
       if (cur == (_EGLSurface *) surf) {
          assert(cur->Display == dpy);
index 6394c9c..20651e5 100644 (file)
@@ -125,14 +125,17 @@ _eglCheckSurfaceHandle(EGLSurface surf, _EGLDisplay *dpy);
 /* Only do a quick check.  This is NOT standard compliant. */
 
 static INLINE EGLBoolean
-_eglCheckDisplayHandle(EGLDisplay dpy) { return EGL_TRUE; }
+_eglCheckDisplayHandle(EGLDisplay dpy)
+{
+   return ((_EGLDisplay *) dpy != NULL);
+}
 
 
 static INLINE EGLBoolean
 _eglCheckContextHandle(EGLContext ctx, _EGLDisplay *dpy)
 {
    _EGLContext *c = (_EGLContext *) ctx;
-   return (c && c->Display == dpy);
+   return (dpy && c && c->Display == dpy);
 }
 
 
@@ -140,7 +143,7 @@ static INLINE EGLBoolean
 _eglCheckSurfaceHandle(EGLSurface surf, _EGLDisplay *dpy)
 {
    _EGLSurface *s = (_EGLSurface *) surf;
-   return (s && s->Display == dpy);
+   return (dpy && s && s->Display == dpy);
 }