It seems xcb/x11 have some bugs related to sizeof(long), in concrete using 32 bit variables for dpy->request et al in AMD64.
This patch fixes some crashes for me. diff -ur libx11-1.1.99.2/src/xcb_io.c libx11-1.1.99.2-a/src/xcb_io.c --- libx11-1.1.99.2/src/xcb_io.c 2008-11-04 20:52:54.000000000 +0100 +++ libx11-1.1.99.2-a/src/xcb_io.c 2009-02-20 02:58:02.000000000 +0100 @@ -214,7 +214,7 @@ } else if(req && xcb_poll_for_reply(dpy->xcb->connection, req->sequence, &reply, &error)) { - unsigned int sequence = req->sequence; + uint64_t sequence = req->sequence; if(!reply) { dpy->xcb->pending_requests = req->next; @@ -300,7 +300,7 @@ * we need to remember to check later. */ if(dpy->xcb->event_owner != XlibOwnsEventQueue || dpy->async_handlers) { - unsigned int sequence; + uint64_t sequence; for(sequence = dpy->xcb->last_flushed; sequence < dpy->request; ++sequence) { PendingRequest *req = malloc(sizeof(PendingRequest)); I've used uint64_t instead unsigned long as it seems preferred through the codebase. Note that both req->sequence and dpy->request are defined as unsigned long. Regards, Emilio
pgp6knhbc4LLg.pgp
Description: PGP signature
_______________________________________________ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg