X-Git-Url: http://git.demorecorder.com/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fxcb_out.c;h=e371cd196ba3370f915a5fd6eedc4f67d0cd9600;hb=442730a9a25644e6d09065cdde2f1595ea65caf3;hp=2b1a434c728140773b3bd189ae08b4db498ab642;hpb=b83f18a4cc2303dfda59807d56e16bbc5c18b09d;p=free-sw%2Fxcb%2Flibxcb diff --git a/src/xcb_out.c b/src/xcb_out.c index 2b1a434..e371cd1 100644 --- a/src/xcb_out.c +++ b/src/xcb_out.c @@ -120,7 +120,7 @@ unsigned int XCBSendRequest(XCBConnection *c, int flags, struct iovec *vector, c longlen += vector[i].iov_len; if(!vector[i].iov_base) { - vector[i].iov_base = (caddr_t) pad; + vector[i].iov_base = (char *) pad; assert(vector[i].iov_len <= sizeof(pad)); } } @@ -144,7 +144,7 @@ unsigned int XCBSendRequest(XCBConnection *c, int flags, struct iovec *vector, c flags &= ~XCB_REQUEST_RAW; /* do we need to work around the X server bug described in glx.xml? */ - if(req->ext && !req->isvoid && strcmp(req->ext->name, "GLX") && + if(req->ext && !req->isvoid && !strcmp(req->ext->name, "GLX") && ((req->opcode == 17 && ((CARD32 *) vector[0].iov_base)[0] == 0x10004) || req->opcode == 21)) workaround = WORKAROUND_GLX_GET_FB_CONFIGS_BUG; @@ -165,7 +165,8 @@ unsigned int XCBSendRequest(XCBConnection *c, int flags, struct iovec *vector, c request = ++c->out.request; assert(request != 0); - _xcb_in_expect_reply(c, request, workaround, flags); + if(workaround != WORKAROUND_NONE || flags != 0) + _xcb_in_expect_reply(c, request, workaround, flags); if(!req->isvoid) c->in.request_expected = c->out.request;