From: Jamey Sharp Date: Sun, 8 Oct 2006 01:35:53 +0000 (-0700) Subject: Bugfix: make Plan 7 'checked' requests work correctly. X-Git-Url: http://git.demorecorder.com/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e0fac22caaf27b3e461807f8c563d0457938baa6;p=free-sw%2Fxcb%2Flibxcb Bugfix: make Plan 7 'checked' requests work correctly. The initial implementation of Plan 7 dumped all X errors into the event queue, because the record of a pending reply was pruned too early if an error occurred in place of the expected reply. --- diff --git a/src/xcb_in.c b/src/xcb_in.c index b252ffc..1cb6b69 100644 --- a/src/xcb_in.c +++ b/src/xcb_in.c @@ -108,8 +108,6 @@ static int read_packet(xcb_connection_t *c) } c->in.request_completed = c->in.request_read - 1; } - if(genrep.response_type == XCB_ERROR) - c->in.request_completed = c->in.request_read; while(c->in.pending_replies && XCB_SEQUENCE_COMPARE (c->in.pending_replies->request, <=, c->in.request_completed)) @@ -120,6 +118,9 @@ static int read_packet(xcb_connection_t *c) c->in.pending_replies_tail = &c->in.pending_replies; free(oldpend); } + + if(genrep.response_type == XCB_ERROR) + c->in.request_completed = c->in.request_read; } if(genrep.response_type == XCB_ERROR || genrep.response_type == XCB_REPLY)