Re: [PATCH] 64-bit issues in libx11

2009-02-21 Thread Maarten Maathuis
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
egall...@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.c2008-11-04 20:52:54.0 +0100
 +++ libx11-1.1.99.2-a/src/xcb_io.c  2009-02-20 02:58:02.0 +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@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/xorg

___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg


Re: [PATCH] 64-bit issues in libx11

2009-02-20 Thread Maarten Maathuis
While we're on this subject, i have a question as well (same file, line 175).

if(event)
  widen(event_sequence, event-full_sequence);

What purpose does that serve?

Maarten.
___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg