[Xcb] XCB parsing and valueparam

Barton C Massey bart at cs.pdx.edu
Fri Aug 29 09:58:43 PDT 2008

In message <200808290918.m7T9IiRa024012 at adara.cs.pdx.edu> I wrote:
> The fundamental bug, then, is in the XCB definition of
> valueparam.  Sometimes there should be a pad between the
> mask and the list of values, as in ConfigureWindow.
> Sometimes there should not, as in CreateWindow.  The
> "obvious" thing to do is to add an optional value-mask-pad
> field to valueparam somewhere in proto/xcbgen/xtypes.py, and
> then go through all the valueparam fields in the various
> requests adding value-mask-pad="2" where needed.  I count
> six of these in the core protocol and another nine
> elsewhere, so this should be doable.
> I'd do it tonight, but my Python and XML hacking skills
> aren't quite up to trying it without a few hours in front of
> me.

Uh, looking at this again in the cold light of day, all but
one of those 15 occurrences of valueparam have a 32-bit
mask.  None of these can possibly need the internal padding,
since they need to be aligned properly anyway.

In other words, ConfigureWindow is a freakshow.  (And no, we
can't just change its mask to be CARD32 and ignore the high
16 bits, because that won't do the right thing on big-endian

I think we still need the fix I recommended above, since
some future request could have a short value-mask with less
or no padding because it came out aligned better.  But I
sure hate to do it for this one stupid request.  Why isn't
the mask just 32 bits like in every other request?



More information about the Xcb mailing list