summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Harris <pharris@opentext.com>2014-01-14 14:45:36 -0500
committerPeter Harris <pharris@opentext.com>2014-01-21 15:23:36 -0500
commitee02385ce1920ac7d0a450a8fccba60f9656d1fb (patch)
tree588dcb0dd9009dad68f5bc79f0f0877f9e8302dd
parenta05a5106354c62d0862f8ed4f90d75bbf51e593f (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.xsd3
-rw-r--r--xcbgen/xtypes.py8
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):