[PATCH] 64-bit issues in libx11
Maarten Maathuis
madman2003 at gmail.com
Sat Feb 21 11:22:15 PST 2009
Committed as http://cgit.freedesktop.org/xorg/lib/libX11/commit/?id=da6bbca07c796c69172a649405474f03bee66754
Please provide git patches in the future (it's easier for both sides).
Maarten.
On Fri, Feb 20, 2009 at 3:10 AM, Emilio Jesús Gallego Arias
<egallego at babel.ls.fi.upm.es> wrote:
> 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
>
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg
>
More information about the xorg
mailing list