Hi, On 16.11.2013 22:37, Jonas Petersen wrote: > The assignment might be confusing at first. So I added a note. > > Signed-off-by: Jonas Petersen <[email protected]> > --- > src/xcb_io.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/src/xcb_io.c b/src/xcb_io.c > index f2978d0..acb1e3b 100644 > --- a/src/xcb_io.c > +++ b/src/xcb_io.c > @@ -83,6 +83,10 @@ static void require_socket(Display *dpy) > "did not own the socket", > xcb_xlib_seq_number_wrapped); > } > + /* The following line will truncate the 64-bit 'sent' > + * to 32-bit when assigning it to 'dpy->request'. The > + * truncated value will then be assigned to the 64-bit > + * 'dpy->xcb->last_flushed' (which is intended). */ > dpy->xcb->last_flushed = dpy->request = sent; > dpy->bufmax = dpy->xcb->real_bufmax; > }
The involved types are: uint64_t sent; uint64_t last_flushed; unsigned long request; So request isn't really a 32-bit type. In fact, on my system, all of these three are the same type. So the comment doesn't really fit. Now let's assume that unsigned long is a 32-bit integer. *Why* is it intended to truncate last_flushed? This means that Xlib uses a 64 bit integer for to tracking the sequence number, but only actually tracks it with 32 bits. This seems wasteful. Why are you sure that this is intended? Disclaimer: I don't know too much about Xlib internals and were not involved in writing xcb_io.c Cheers, Uli -- "Every once in a while, declare peace. It confuses the hell out of your enemies" - 79th Rule of Acquisition _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
