summaryrefslogtreecommitdiff
path: root/src/xcb_io.c
diff options
context:
space:
mode:
authorJamey Sharp <jamey@minilop.net>2007-06-03 21:24:54 -0700
committerJamey Sharp <jamey@minilop.net>2007-06-03 21:24:54 -0700
commit5123b77a3d32d3ad479462f319762c328278aed9 (patch)
treef27d7cb9ef59776c5d384c516d24b400471cfc9d /src/xcb_io.c
parent582ca690ea4f3ffd2b94826c4db97229bd3c7238 (diff)
Xlib/XCB: Inline and simplify handle_event, since only process_responses calls it now.
Commit by Josh Triplett and Jamey Sharp.
Diffstat (limited to 'src/xcb_io.c')
-rw-r--r--src/xcb_io.c27
1 files changed, 10 insertions, 17 deletions
diff --git a/src/xcb_io.c b/src/xcb_io.c
index afab7ac7..193ee686 100644
--- a/src/xcb_io.c
+++ b/src/xcb_io.c
@@ -77,18 +77,6 @@ static void condition_wait(Display *dpy, xcondition_t cv)
_XGetXCBBuffer(dpy);
}
-static void handle_event(Display *dpy, xcb_generic_event_t *e)
-{
- if(!e)
- _XIOError(dpy);
- dpy->last_request_read = e->full_sequence;
- if(e->response_type == X_Error)
- _XError(dpy, (xError *) e);
- else
- _XEnq(dpy, (xEvent *) e);
- free(e);
-}
-
static void call_handlers(Display *dpy, xcb_generic_reply_t *buf)
{
_XAsyncHandler *async, *next;
@@ -132,8 +120,13 @@ static void process_responses(Display *dpy, int wait_for_first_event, xcb_generi
assert(!(req && current_request && !XCB_SEQUENCE_COMPARE(req->sequence, <=, current_request)));
if(event && (!req || XCB_SEQUENCE_COMPARE(event->full_sequence, <=, req->sequence)))
{
- if(current_error && event->response_type == X_Error
- && event->full_sequence == current_request)
+ dpy->last_request_read = event->full_sequence;
+ if(event->response_type != X_Error)
+ {
+ _XEnq(dpy, (xEvent *) event);
+ wait_for_first_event = 0;
+ }
+ else if(current_error && event->full_sequence == current_request)
{
/* This can only occur when called from
* _XReply, which doesn't need a new event. */
@@ -141,9 +134,9 @@ static void process_responses(Display *dpy, int wait_for_first_event, xcb_generi
event = 0;
break;
}
- if(event->response_type != X_Error)
- wait_for_first_event = 0;
- handle_event(dpy, event);
+ else
+ _XError(dpy, (xError *) event);
+ free(event);
event = wait_or_poll_for_event(dpy, wait_for_first_event);
}
else if(req && req->waiters != -1)