From: Chia-I Wu Date: Tue, 26 Jan 2010 07:16:49 +0000 (+0800) Subject: egl: Use a boolean to indicate whether a resource is linked. X-Git-Tag: 062012170305~12852^2~1466 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f65ed0a3097d91289ced44d53786506333122b55;p=profile%2Fivi%2Fmesa.git egl: Use a boolean to indicate whether a resource is linked. An unlinked resource may still be a current resource such as current surfaces. There might still be a need to know which display the unlinked resource belongs to. --- diff --git a/src/egl/main/egldisplay.c b/src/egl/main/egldisplay.c index 359900c..125909d 100644 --- a/src/egl/main/egldisplay.c +++ b/src/egl/main/egldisplay.c @@ -242,7 +242,10 @@ _eglCheckResource(void *res, _EGLResourceType type, _EGLDisplay *dpy) void _eglLinkResource(_EGLResource *res, _EGLResourceType type, _EGLDisplay *dpy) { + assert(!res->Display || res->Display == dpy); + res->Display = dpy; + res->IsLinked = EGL_TRUE; res->Next = dpy->ResourceLists[type]; dpy->ResourceLists[type] = res; } @@ -271,5 +274,6 @@ _eglUnlinkResource(_EGLResource *res, _EGLResourceType type) } res->Next = NULL; - res->Display = NULL; + /* do not reset res->Display */ + res->IsLinked = EGL_FALSE; } diff --git a/src/egl/main/egldisplay.h b/src/egl/main/egldisplay.h index 0f5d3a0..8f74ad2 100644 --- a/src/egl/main/egldisplay.h +++ b/src/egl/main/egldisplay.h @@ -19,7 +19,11 @@ enum _egl_resource_type { */ struct _egl_resource { + /* which display the resource belongs to */ _EGLDisplay *Display; + EGLBoolean IsLinked; + + /* used to link resources of the same type */ _EGLResource *Next; }; @@ -179,7 +183,7 @@ _eglUnlinkResource(_EGLResource *res, _EGLResourceType type); static INLINE EGLBoolean _eglIsResourceLinked(_EGLResource *res) { - return (res->Display != NULL); + return res->IsLinked; }