From: Jamey Sharp <[email protected]>

Don't lose async replies. That's bad.

`xlsfonts -l`, which uses XListFontsWithInfo, worked fine, because the
_XReply path worked; that path waited for replies, rather than polling.

However, XRecordProcessReplies, which does nothing but call XPending,
relied on the event-handling path to process async replies, and that was
busted.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=28595

Signed-off-by: Jamey Sharp <[email protected]>
(cherry picked from commit 978c7238789037de917b9423ea9adfb006da1260)

Cherry pick without conflicts from master to 1.3 branch.

Signed-off-by: Pauli Nieminen <[email protected]>
---
 src/xcb_io.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/xcb_io.c b/src/xcb_io.c
index 72881d8..7e685de 100644
--- a/src/xcb_io.c
+++ b/src/xcb_io.c
@@ -239,8 +239,9 @@ static xcb_generic_reply_t *poll_for_response(Display *dpy)
        {
                assert(XLIB_SEQUENCE_COMPARE(req->sequence, <=, dpy->request));
                dpy->last_request_read = req->sequence;
-               if(!response)
-                       dequeue_pending_request(dpy, req);
+               if(response)
+                       break;
+               dequeue_pending_request(dpy, req);
                if(error)
                        return (xcb_generic_reply_t *) error;
        }
-- 
1.7.3.4

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to