From b47731f24db2e4c99073b107050376addf636c98 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 4 Mar 2005 17:53:24 +0000 Subject: Import fixes from X.org tree (Søren Sandmann ). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/glx/x11/glx_pbuffer.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'src/glx/x11/glx_pbuffer.c') diff --git a/src/glx/x11/glx_pbuffer.c b/src/glx/x11/glx_pbuffer.c index a7d9f122cb..b515f0c839 100644 --- a/src/glx/x11/glx_pbuffer.c +++ b/src/glx/x11/glx_pbuffer.c @@ -278,14 +278,16 @@ CreateDrawable( Display *dpy, const __GLcontextModes * fbconfig, { xGLXCreateWindowReq * req; CARD32 * data; - unsigned int i; - + unsigned int i; - for ( i = 0 ; attrib_list[i * 2] != None ; i++ ) - /* empty */ ; + i = 0; + if (attrib_list) { + while (attrib_list[i * 2] != None) + i++; + } LockDisplay(dpy); - GetReqExtra( GLXCreateWindow, 20 + (8 * i), req ); + GetReqExtra( GLXCreateWindow, 8 * i, req ); data = (CARD32 *) (req + 1); req->reqType = __glXSetupForCommand(dpy); @@ -293,12 +295,15 @@ CreateDrawable( Display *dpy, const __GLcontextModes * fbconfig, req->screen = (CARD32) fbconfig->screen; req->fbconfig = fbconfig->fbconfigID; req->window = (GLXPbuffer) drawable; + req->glxwindow = (GLXWindow) XAllocID(dpy); req->numAttribs = (CARD32) i; + memcpy( data, attrib_list, 8 * i ); + UnlockDisplay(dpy); SyncHandle(); - return drawable; + return (GLXDrawable)req->glxwindow; } @@ -355,10 +360,11 @@ CreatePbuffer( Display *dpy, const __GLcontextModes * fbconfig, CARD32 * data; unsigned int i; - - for ( i = 0 ; attrib_list[i * 2] != None ; i++ ) - /* empty */ ; - + i = 0; + if (attrib_list) { + while (attrib_list[i * 2]) + i++; + } LockDisplay(dpy); id = XAllocID(dpy); -- cgit v1.2.3