* On 03/12/2018 08:27 PM, Keith Packard wrote:
> This field was defined as a Bool in the protocol headers and BOOL in
> xcb. Bool is not a valid type for protocol fields. It is defined as
> 'int' by Xdefs.h, which we expect to be 32-bits on all machines.
>
> The protocol headers and xcb have patches posted to switch to CARD32,
> which is at least well defined.
>
> This change adds the necessary byte swapping to handle other-endian
> clients with this 32-bit field, and then changes the request
> processing to use only the low byte of that value so that older XCB
> clients will continue to work properly, at least on LSB machines.
>
> On MSB machines, Xlib will continue to work properly, but old XCB will
> not interoperate with the X server (either before or after this patch).
An actual matrix for this would be
C -> S | old server | new server
| Xlib | old xcb | new xcb | Xlib | old xcb | new xcb
l -> l | X |X|X| X |X|X
l -> B | - |-|-| X |X|X
B -> l | - |X|-| X |-|X
B -> B | X |-|X| X |-|X
Too complicated to fully transcribe into words as part of a commit message, I'd
say.
The actual changes (both server and proto) LGTM.
Mihai
signature.asc
Description: OpenPGP digital signature
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel