summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJamey Sharp <jamey@minilop.net>2006-10-07 18:35:53 -0700
committerJamey Sharp <jamey@minilop.net>2006-10-07 18:35:53 -0700
commite0fac22caaf27b3e461807f8c563d0457938baa6 (patch)
tree6457d8878ab1e4128f135afe701efec8a26247d2 /src
parent7b84d8b650a611d4d76083340e50cb7ea815014d (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')
-rw-r--r--src/xcb_in.c5
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)