From e0fac22caaf27b3e461807f8c563d0457938baa6 Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Sat, 7 Oct 2006 18:35:53 -0700 Subject: 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. --- src/xcb_in.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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) -- cgit v1.2.3