[PATCH 09/11] glx: Use one function to add a context to all global tables

Jesse Barnes jbarnes at virtuousgeek.org
Tue Jan 3 16:28:07 PST 2012


On Fri, 23 Dec 2011 15:18:27 -0800
"Ian Romanick" <idr at freedesktop.org> wrote:

> From: Ian Romanick <ian.d.romanick at intel.com>
> 
> Instead of having separate __glXAddContextToList and AddResource
> functions, just have one function that does both steps.
> 
> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
> ---
>  glx/glxcmds.c |    9 +++------
>  glx/glxext.c  |   10 +++++++++-
>  glx/glxext.h  |    2 +-
>  3 files changed, 13 insertions(+), 8 deletions(-)
> 
> diff --git a/glx/glxcmds.c b/glx/glxcmds.c
> index 983f21a..0dce420 100644
> --- a/glx/glxcmds.c
> +++ b/glx/glxcmds.c
> @@ -305,16 +305,13 @@ DoCreateContext(__GLXclientState *cl, GLXContextID gcId,
>      glxc->drawPriv = NULL;
>      glxc->readPriv = NULL;
>  
> -    /*
> -    ** Register this context as a resource.
> -    */
> -    if (!AddResource(gcId, __glXContextRes, (pointer)glxc)) {
> +    /* Add the new context to the various global tables of GLX contexts.
> +     */
> +    if (!__glXAddContext(glxc)) {
>  	(*glxc->destroy)(glxc);
>  	client->errorValue = gcId;
>  	return BadAlloc;
>      }
> -    
> -    __glXAddToContextList(glxc);
>  
>      return Success;
>  }
> diff --git a/glx/glxext.c b/glx/glxext.c
> index f8fe43b..61eb35b 100644
> --- a/glx/glxext.c
> +++ b/glx/glxext.c
> @@ -152,10 +152,18 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid)
>      return True;
>  }
>  
> -void __glXAddToContextList(__GLXcontext *cx)
> +Bool __glXAddContext(__GLXcontext *cx)
>  {
> +    /*
> +    ** Register this context as a resource.
> +    */
> +    if (!AddResource(cx->id, __glXContextRes, (pointer)cx)) {
> +	return False;
> +    }
> +
>      cx->next = glxAllContexts;
>      glxAllContexts = cx;
> +    return True;
>  }
>  
>  static void __glXRemoveFromContextList(__GLXcontext *cx)
> diff --git a/glx/glxext.h b/glx/glxext.h
> index 58cf054..cb1707d 100644
> --- a/glx/glxext.h
> +++ b/glx/glxext.h
> @@ -38,7 +38,7 @@
>  extern GLboolean __glXFreeContext(__GLXcontext *glxc);
>  extern void __glXFlushContextCache(void);
>  
> -extern void __glXAddToContextList(__GLXcontext *cx);
> +extern Bool __glXAddContext(__GLXcontext *cx);
>  extern void __glXErrorCallBack(GLenum code);
>  extern void __glXClearErrorOccured(void);
>  extern GLboolean __glXErrorOccured(void);

Seems ok, but should you update the corresponding DMX code too?

-- 
Jesse Barnes, Intel Open Source Technology Center


More information about the xorg-devel mailing list