X-Git-Url: http://git.demorecorder.com/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fxcb_in.c;h=ea851c7d9c3d616ecd562deeb4caa90c94b71dd2;hb=e5458e477db95e1e064e46ca28245ecd51b5b524;hp=973a0d2fe097da5e2cdeca301492c672d9bd7bc2;hpb=29f9fe0fc805a1ec6860f167a45664cc1cf0c769;p=free-sw%2Fxcb%2Flibxcb diff --git a/src/xcb_in.c b/src/xcb_in.c index 973a0d2..ea851c7 100644 --- a/src/xcb_in.c +++ b/src/xcb_in.c @@ -91,6 +91,8 @@ static int read_packet(XCBConnection *c) c->in.request_read = (lastread & 0xffff0000) | genrep.sequence; if(c->in.request_read < lastread) c->in.request_read += 0x10000; + if(c->in.request_read > c->in.request_expected) + c->in.request_expected = c->in.request_read; if(c->in.request_read != lastread) { @@ -141,6 +143,11 @@ static int read_packet(XCBConnection *c) free(buf); return 0; } + if(pend && (pend->flags & XCB_REQUEST_DISCARD_REPLY)) + { + free(buf); + return 1; + } if(genrep.response_type != 1) ((XCBGenericEvent *) buf)->full_sequence = c->in.request_read;