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

Ian Romanick idr at freedesktop.org
Tue Jan 3 17:00:32 PST 2012


On 01/03/2012 04:28 PM, Jesse Barnes wrote:
> 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?

I don't think so.  glxproxy never used __glXAddToContextList, and, as 
far as I can tell, it has it's own __glXContextRes (in global.c).  I 
don't think there should be any interactions here.



More information about the xorg-devel mailing list