Minor performance improvement: do not call _xcb_in_expect_reply unless it is needed...
authorJamey Sharp <jamey@minilop.net>
Thu, 20 Apr 2006 18:51:01 +0000 (11:51 -0700)
committerJamey Sharp <jamey@minilop.net>
Thu, 20 Apr 2006 18:51:01 +0000 (11:51 -0700)
src/xcb_in.c
src/xcb_out.c

index ecacb99..3bf54f3 100644 (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;
 }
 
index eb41e59..2667973 100644 (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;