From: Jamey Sharp Date: Thu, 20 Apr 2006 18:51:01 +0000 (-0700) Subject: Minor performance improvement: do not call _xcb_in_expect_reply unless it is needed... X-Git-Url: http://git.demorecorder.com/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=771761ccaad31d029d470dde84279e94494310b6;p=free-sw%2Fxcb%2Flibxcb Minor performance improvement: do not call _xcb_in_expect_reply unless it is needed. It is not often needed. --- diff --git a/src/xcb_in.c b/src/xcb_in.c index ecacb99..3bf54f3 100644 --- a/src/xcb_in.c +++ b/src/xcb_in.c @@ -443,18 +443,16 @@ void _xcb_in_destroy(_xcb_in *in) int _xcb_in_expect_reply(XCBConnection *c, unsigned int request, enum workarounds workaround, int flags) { - if(workaround != WORKAROUND_NONE || flags != 0) - { - pending_reply *pend = malloc(sizeof(pending_reply)); - if(!pend) - return 0; - pend->request = request; - pend->workaround = workaround; - pend->flags = flags; - pend->next = 0; - *c->in.pending_replies_tail = pend; - c->in.pending_replies_tail = &pend->next; - } + pending_reply *pend = malloc(sizeof(pending_reply)); + assert(workaround != WORKAROUND_NONE || flags != 0); + if(!pend) + return 0; + pend->request = request; + pend->workaround = workaround; + pend->flags = flags; + pend->next = 0; + *c->in.pending_replies_tail = pend; + c->in.pending_replies_tail = &pend->next; return 1; } diff --git a/src/xcb_out.c b/src/xcb_out.c index eb41e59..2667973 100644 --- a/src/xcb_out.c +++ b/src/xcb_out.c @@ -165,7 +165,8 @@ unsigned int XCBSendRequest(XCBConnection *c, int flags, struct iovec *vector, c request = ++c->out.request; assert(request != 0); - _xcb_in_expect_reply(c, request, workaround, flags); + if(workaround != WORKAROUND_NONE || flags != 0) + _xcb_in_expect_reply(c, request, workaround, flags); if(!req->isvoid) c->in.request_expected = c->out.request;