diff --git a/glx/glxcmds.c b/glx/glxcmds.c index 308c14a4e..571ae50b5 100644 --- a/glx/glxcmds.c +++ b/glx/glxcmds.c @@ -290,26 +290,10 @@ DoCreateContext(__GLXclientState * cl, GLXContextID gcId, return BadAlloc; } - /* - ** Initially, setup the part of the context that could be used by - ** a GL core that needs windowing information (e.g., Mesa). + /* Initialize the GLXcontext structure. */ glxc->pGlxScreen = pGlxScreen; glxc->config = config; - - /* - ** Register this context as a resource. - */ - if (!AddResource(gcId, __glXContextRes, (pointer) glxc)) { - (*glxc->destroy) (glxc); - client->errorValue = gcId; - return BadAlloc; - } - - /* - ** Finally, now that everything is working, setup the rest of the - ** context. - */ glxc->id = gcId; glxc->share_id = shareList; glxc->idExists = GL_TRUE; @@ -317,6 +301,14 @@ DoCreateContext(__GLXclientState * cl, GLXContextID gcId, glxc->isDirect = isDirect; glxc->renderMode = GL_RENDER; + /* Register this context as a resource. + */ + if (!AddResource(gcId, __glXContextRes, (pointer)glxc)) { + (*glxc->destroy) (glxc); + client->errorValue = gcId; + return BadAlloc; + } + __glXAddToContextList(glxc); return Success;