[Xcb] [PATCH proto 1/2] xkb: Work around alignment problem in GetNames reply
Ran Benita
ran234 at gmail.com
Thu Jul 25 15:54:46 PDT 2013
Here's another small fix I've noticed (attached - I have to send it
from a web interface, sorry!).
On Tue, Jul 23, 2013 at 1:33 PM, Ran Benita <ran234 at gmail.com> wrote:
> The situation is: a list of CARD8s followed by a list of ATOMs (4
> bytes). In the current code, the second list is aligned to 1 byte
> according the size of the CARD8 list, so in effect it follows the first
> list immediately. However, the second list needs to be aligned to 4 bytes
> (see XkbPaddedSize in the server and Xlib).
>
> Signed-off-by: Ran Benita <ran234 at gmail.com>
> ---
> src/xkb.xml | 28 ++++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> Here's some test code I've used:
> https://gist.github.com/bluetech/6061368
>
> I've also tried to see if this can be fixed in the code generator rather
> than the protocol file. But it seems like there's diparity among the
> extensions on what to do here. It was discussed before:
>
> http://lists.freedesktop.org/archives/xcb/2010-November/006575.html
> https://bugs.freedesktop.org/show_bug.cgi?id=34037
> http://lists.freedesktop.org/archives/xcb/2011-July/007157.html
> (Also continues to other monthes)
>
> So I've opted for the workaround (lifted from xf86vidmode.xml as
> suggested on IRC).
>
> diff --git a/src/xkb.xml b/src/xkb.xml
> index 0e263c4..ca3a8b2 100644
> --- a/src/xkb.xml
> +++ b/src/xkb.xml
> @@ -1350,6 +1350,20 @@ authorization from the authors.
> <list name="acts_rtrn_count" type="CARD8">
> <fieldref>nKeyActions</fieldref>
> </list>
> + <list type="CARD8" name="alignment_pad">
> + <op op="-">
> + <op op="&">
> + <op op="+">
> + <fieldref>nKeyActions</fieldref>
> + <value>3</value>
> + </op>
> + <unop op="~">
> + <value>3</value>
> + </unop>
> + </op>
> + <fieldref>nKeyActions</fieldref>
> + </op>
> + </list>
> <list name="acts_rtrn_acts" type="Action">
> <fieldref>totalActions</fieldref>
> </list>
> @@ -1657,6 +1671,20 @@ authorization from the authors.
> <fieldref>nKTLevels</fieldref> -->
> <fieldref>nTypes</fieldref>
> </list>
> + <list type="CARD8" name="alignment_pad">
> + <op op="-">
> + <op op="&">
> + <op op="+">
> + <fieldref>nTypes</fieldref>
> + <value>3</value>
> + </op>
> + <unop op="~">
> + <value>3</value>
> + </unop>
> + </op>
> + <fieldref>nTypes</fieldref>
> + </op>
> + </list>
> <list name="ktLevelNames" type="ATOM">
> <sumof ref="nLevelsPerType" />
> </list>
> --
> 1.8.3.3
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-xkb-Change-DfltBtnAbsolute-to-the-value-used-by-the-.patch
Type: application/octet-stream
Size: 964 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/xcb/attachments/20130726/459ca89a/attachment.obj>
More information about the Xcb
mailing list