Minor performance improvement: do not call _xcb_in_expect_reply unless it is needed. It is not often needed.

This commit is contained in:
Jamey Sharp 2006-04-20 11:51:01 -07:00
parent 8953a14f2b
commit 771761ccaa
2 changed files with 12 additions and 13 deletions

View File

@ -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;
}

View File

@ -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;