From: Jamey Sharp Date: Sun, 30 Jul 2006 21:55:14 +0000 (-0700) Subject: Fix Keith's 32-bit wrap fix. X-Git-Url: http://git.demorecorder.com/cgi-bin/gitweb.cgi?a=commitdiff_plain;ds=sidebyside;h=f74487e34fd61d11a501c07030f8fd7ed8caeb1c;p=free-sw%2Fxcb%2Flibxcb Fix Keith's 32-bit wrap fix. Issue 0, 1, or 2 syncs as needed and do not handle 16-bit wrap until absolutely necessary. --- diff --git a/src/xcb_out.c b/src/xcb_out.c index 9a67ad2..56e02f7 100644 --- a/src/xcb_out.c +++ b/src/xcb_out.c @@ -163,8 +163,8 @@ unsigned int XCBSendRequest(XCBConnection *c, int flags, struct iovec *vector, c * Also send sync (could use NoOp) at 32-bit wrap to avoid having * applications see sequence 0 as that is used to indicate * an error in sending the request */ - if((req->isvoid && - c->out.request == c->in.request_expected + (1 << 16) - 2) || + while((req->isvoid && + c->out.request == c->in.request_expected + (1 << 16) - 1) || request == 0) { prefix[0] = sync.packet;