[PATCH] 64-bit issues in libx11
Emilio Jesús Gallego Arias
egallego at babel.ls.fi.upm.es
Thu Feb 19 18:10:55 PST 2009
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20090220/28ed9667/attachment.pgp>
More information about the xorg
mailing list