[PATCH 09/11] glx: Use one function to add a context to all global tables
Jesse Barnes
jbarnes at virtuousgeek.org
Wed Jan 4 09:13:24 PST 2012
On Tue, 03 Jan 2012 17:00:32 -0800
Ian Romanick <idr at freedesktop.org> wrote:
> 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.
Ok I just saw the call to AddResource there using the __glXContextRes,
but if the semantics are different and you checked, this gets my:
Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>
Thanks,
--
Jesse Barnes, Intel Open Source Technology Center
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg-devel/attachments/20120104/3d8557e5/attachment.pgp>
More information about the xorg-devel
mailing list