Mihai Moldovan <io...@ionic.de> writes: > Hi > > > In > https://cgit.freedesktop.org/xorg/xserver/commit/?id=9edcae78c46286baff42e74bfe26f6ae4d00fe01 > the swapl() call for stuff->suspend was removed. That sounds like a bad idea > to me? > > xScreenSaverSuspendReq to this day defines it as a Bool, which is typedef'd to > int everywhere and includes the (ignored) B32 width specifier, so using > swapl() > on the member sounds like a good idea. Definitely isn't a CARD8 object, > despite > its name.
Oh. This is pretty bad. 'Bool' is not a valid type in protocol headers, it should have been BOOL. And, BOOL is a single byte. But, it is Bool, and I guess that is generally 4 bytes on most architectures. The XCB headers define this field as a byte and have three pad bytes afterwards, so we actually have incompatible protocol definitions for xcb and xlib/xserver. I'm not entirely sure what we should do at this point; I suspect that treating it as a 32-bit value, fixing the protocol to use CARD32 everywhere instead of Bool and BOOL, and then adding swapl would cause the least fuss. -- -keith
Description: PGP signature
_______________________________________________ firstname.lastname@example.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel