[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