[Xcb] [PATCH proto 00/18] Use explicit enum values and use hex value
Daniel Martin
consume.noise at gmail.com
Sun Aug 18 07:54:00 PDT 2013
Hi folks,
explicit is better than implicit. This applies for padding and in my
opinion for enum item values too.
Values for enum items don't change dynamically. We have the values at
hand when adding an enum to an xml specification. We should have this
information where it belongs and not omit it.
And there're programming languages not having support for enumerations
(or at least to in the beginning - see Java and Python). Such a language
would need to adopt the c compilers counting scheme for enum items
without a value. That's not a big deal, but won't be necessary if we
simply add the value we already have.
That's what the first 15 patches do: add those values. Number 16 makes
sure that new enums can't be added without a bit or value by changing
the xml schema accordingly. (Side note: without this patch one could
write any expression into an enum item, i.e. <fieldref>foo</fieldref>
would've been allowed by the schema.)
The last 2 patches use hex values instead of decimal values if
applicable (if there was a comment with a hex value). The schema allows
it, c_client.py passes them 1:1 into the header. So, I don't see why no
one did that before (maybe didn't worked when those comments had been
added, didn't checked).
Hex values can be more descriptive than decimal values. Examples:
- In glx there was GL_ALL_ATTRIB_BITS=16777215, 16777215 is a big number
but I don't see directly that this is a number with all last bits set
to one, as 16777215 == 0x000ffffff.
- In XKB have been enum items with 256, 512, 768, ... as values. Those
could've been changed to bits. But, the XKB spec. uses hex values
there: 0x100, 0x200, 0x300, ... So, I've choosen the hex values.
Cheers,
Daniel Martin (18):
composite: Use explicit enum value
damage: Use explicit enum value
dpms: Use explicit enum value
randr: Use explicit enum value
dri2: Use explicit enum value
render: Use explicit enum value
screensaver: Use explicit enum value
shape: Use explicit enum value
sync: Use explicit enum value
xevie: Use explicit enum value
xfixes: Use explicit enum value
xinput: Use explicit enum value
xkb: Use explicit enum value
xproto: Use explicit enum value
xv: Use explicit enum value
Enforce a bit or value in enum items
glx: Use hex value for enum item GL_ALL_ATTRIB_BITS
xkb: Use hex values in enum items
src/composite.xml | 4 +-
src/damage.xml | 8 +--
src/dpms.xml | 8 +--
src/dri2.xml | 26 +++++-----
src/glx.xml | 2 +-
src/randr.xml | 6 +--
src/render.xml | 140 ++++++++++++++++++++++++++--------------------------
src/screensaver.xml | 14 +++---
src/shape.xml | 16 +++---
src/sync.xml | 18 +++----
src/xcb.xsd | 5 +-
src/xevie.xml | 4 +-
src/xfixes.xml | 22 ++++-----
src/xinput.xml | 112 ++++++++++++++++++++---------------------
src/xkb.xml | 70 +++++++++++++-------------
src/xproto.xml | 136 +++++++++++++++++++++++++-------------------------
src/xv.xml | 34 ++++++-------
17 files changed, 314 insertions(+), 311 deletions(-)
--
1.8.3.3
More information about the Xcb
mailing list