Why is sizeof(XID)==8 on AMD64?

2011-03-28 Thread Clemens Eisserer
Hi, I just ran in a couple of bugs because my code assumes sizeof(XID)==4 on all platforms which doesn't seem to hold on AMD64. Whats the reason for XID to be 8bytes (unsigned long) on AMD64, I thought an x-id (in protocol sence) is defined as 4 bytes anyway? Will Xlib/xcb ever return values

Re: Why is sizeof(XID)==8 on AMD64?

2011-03-28 Thread Matthieu Herrb
On Mon, Mar 28, 2011 at 04:11:35PM +0200, Clemens Eisserer wrote: Hi, I just ran in a couple of bugs because my code assumes sizeof(XID)==4 on all platforms which doesn't seem to hold on AMD64. Whats the reason for XID to be 8bytes (unsigned long) on AMD64, I thought an x-id (in protocol

Re: Why is sizeof(XID)==8 on AMD64?

2011-03-28 Thread Clemens Eisserer
Hi Matthieu, Thanks for your explanation =) This is a mistake done 25 years ago or so. It's hard to justify it, but it is so. A number of things that are 32 bits on the wire are represented as 64 bits long at the API level on LP64 machines. Is it considered more or less safe to store those

Re: Why is sizeof(XID)==8 on AMD64?

2011-03-28 Thread Matthieu Herrb
On Mon, Mar 28, 2011 at 04:47:18PM +0200, Clemens Eisserer wrote: Hi Matthieu, Thanks for your explanation =) This is a mistake done 25 years ago or so. It's hard to justify it, but it is so. A number of things that are 32 bits on the wire are represented as 64 bits long at the API

Re: Why is sizeof(XID)==8 on AMD64?

2011-03-28 Thread Alan Coopersmith
On 03/28/11 07:35 AM, Matthieu Herrb wrote: Changing the APIs now would break too many things, an no one as ever considered doing a new major revisition of all those APIs. In some sense, libxcb is the major revision of the X client API, which hopefully has fewer mistakes we won't realize for