diff --git a/libxcb.changes b/libxcb.changes index 54f3c25..b45474e 100644 --- a/libxcb.changes +++ b/libxcb.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Aug 21 06:58:35 UTC 2018 - msrb@suse.com + +- u_don-t-flag-extra-reply-in-xcb_take_socket.patch + * Update to version proposed upstream. + ------------------------------------------------------------------- Mon Aug 13 09:06:27 UTC 2018 - msrb@suse.com diff --git a/u_don-t-flag-extra-reply-in-xcb_take_socket.patch b/u_don-t-flag-extra-reply-in-xcb_take_socket.patch index f2c0f0d..45c4f41 100644 --- a/u_don-t-flag-extra-reply-in-xcb_take_socket.patch +++ b/u_don-t-flag-extra-reply-in-xcb_take_socket.patch @@ -49,7 +49,7 @@ diff --git a/src/xcb_in.c b/src/xcb_in.c index 73209e0..4333ad3 100644 --- a/src/xcb_in.c +++ b/src/xcb_in.c -@@ -958,8 +958,25 @@ void _xcb_in_replies_done(xcb_connection_t *c) +@@ -958,8 +958,20 @@ void _xcb_in_replies_done(xcb_connection_t *c) pend = container_of(c->in.pending_replies_tail, struct pending_reply, next); if(pend->workaround == WORKAROUND_EXTERNAL_SOCKET_OWNER) { @@ -62,16 +62,11 @@ index 73209e0..4333ad3 100644 + /* The socket was taken, but no requests were actually sent + * so just discard the pending_reply that was created. + */ -+ struct pending_reply *prev_pend = c->in.pending_replies; -+ if (prev_pend == pend) { -+ c->in.pending_replies = NULL; -+ c->in.pending_replies_tail = &c->in.pending_replies; -+ } else { -+ while (prev_pend->next != pend) -+ prev_pend = prev_pend->next; -+ prev_pend->next = NULL; -+ c->in.pending_replies_tail = &prev_pend->next; -+ } ++ struct pending_reply **prev_next = &c->in.pending_replies; ++ while (*prev_next != pend) ++ prev_next = &(*prev_next)->next; ++ *prev_next = NULL; ++ c->in.pending_replies_tail = prev_next; + free(pend); + } }