diff options
author | Jamey Sharp <jamey@minilop.net> | 2006-10-07 18:35:53 -0700 |
---|---|---|
committer | Jamey Sharp <jamey@minilop.net> | 2006-10-07 18:35:53 -0700 |
commit | e0fac22caaf27b3e461807f8c563d0457938baa6 (patch) | |
tree | 6457d8878ab1e4128f135afe701efec8a26247d2 /src/xcb_in.c | |
parent | 7b84d8b650a611d4d76083340e50cb7ea815014d (diff) |
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.
Diffstat (limited to 'src/xcb_in.c')
-rw-r--r-- | src/xcb_in.c | 5 |
1 files 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) |