diff options
author | Peter Harris <pharris@opentext.com> | 2014-01-14 14:45:36 -0500 |
---|---|---|
committer | Peter Harris <pharris@opentext.com> | 2014-01-21 15:23:36 -0500 |
commit | ee02385ce1920ac7d0a450a8fccba60f9656d1fb (patch) | |
tree | 588dcb0dd9009dad68f5bc79f0f0877f9e8302dd | |
parent | a05a5106354c62d0862f8ed4f90d75bbf51e593f (diff) |
Support <pad align="n" />
Reviewed-By: Ran Benita <ran234@gmail.com>
Signed-off-by: Peter Harris <pharris@opentext.com>
-rw-r--r-- | src/xcb.xsd | 3 | ||||
-rw-r--r-- | xcbgen/xtypes.py | 8 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/xcb.xsd b/src/xcb.xsd index 73dbf8a..580d258 100644 --- a/src/xcb.xsd +++ b/src/xcb.xsd @@ -42,7 +42,8 @@ authorization from the authors. <!-- Padding --> <xsd:element name="pad"> <xsd:complexType> - <xsd:attribute name="bytes" type="xsd:integer" use="required" /> + <xsd:attribute name="bytes" type="xsd:integer" use="optional" /> + <xsd:attribute name="align" type="xsd:integer" use="optional" /> </xsd:complexType> </xsd:element> diff --git a/xcbgen/xtypes.py b/xcbgen/xtypes.py index e9596a9..3cd9032 100644 --- a/xcbgen/xtypes.py +++ b/xcbgen/xtypes.py @@ -267,13 +267,17 @@ class PadType(Type): Type.__init__(self, tcard8.name) self.is_pad = True self.size = 1 - self.nmemb = 1 if (elt == None) else int(elt.get('bytes'), 0) + self.nmemb = 1 + self.align = 1 + if elt != None: + self.nmemb = int(elt.get('bytes', "1"), 0) + self.align = int(elt.get('align', "1"), 0) def resolve(self, module): self.resolved = True def fixed_size(self): - return True + return self.align <= 1 class ComplexType(Type): |