From 30af30b78075159fce477ae99cc72540133714d0 Mon Sep 17 00:00:00 2001 From: marha Date: Sun, 26 Jan 2014 20:05:50 +0100 Subject: xserver randrproto libxtrans fontconfig libxcb xcb-proto mesa git update 26 Jan 2014 xserver commit c1ce807d9f18f215332d7eeb844e8c640f71c53c libxcb commit e7263931aff3e3450dc938ad465a7577f943549f libxcb/xcb-proto commit d898fd39ad6c82207eb78666b2daad982dd757b5 randrproto commit a4a6694c059d74247c16527eef4a0ec9f56bbef6 libxtrans commit e1e6121a1638d43d9929589b4723da2b38cb6b44 fontconfig commit e2b406053c2937799da8636c56b72a77998bcab0 mesa commit 07149f0252c52b4ac58b6df4e307fd786b49b490 --- libxcb/xcb-proto/xcbgen/state.py | 1 + libxcb/xcb-proto/xcbgen/xtypes.py | 16 ++++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) (limited to 'libxcb/xcb-proto/xcbgen') diff --git a/libxcb/xcb-proto/xcbgen/state.py b/libxcb/xcb-proto/xcbgen/state.py index 10a8722ea..52b8d8da7 100644 --- a/libxcb/xcb-proto/xcbgen/state.py +++ b/libxcb/xcb-proto/xcbgen/state.py @@ -93,6 +93,7 @@ class Module(object): # Recursively resolve all types def resolve(self): for (name, item) in self.all: + self.pads = 0 item.resolve(self) # Call all the output methods diff --git a/libxcb/xcb-proto/xcbgen/xtypes.py b/libxcb/xcb-proto/xcbgen/xtypes.py index 5f45723ce..3cd90320e 100644 --- a/libxcb/xcb-proto/xcbgen/xtypes.py +++ b/libxcb/xcb-proto/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): @@ -296,16 +300,15 @@ class ComplexType(Type): def resolve(self, module): if self.resolved: return - pads = 0 enum = None # Resolve all of our field datatypes. for child in list(self.elt): if child.tag == 'pad': - field_name = 'pad' + str(pads) + field_name = 'pad' + str(module.pads) fkey = 'CARD8' type = PadType(child) - pads = pads + 1 + module.pads = module.pads + 1 visible = False elif child.tag == 'field': field_name = child.get('name') @@ -397,7 +400,6 @@ class SwitchType(ComplexType): def resolve(self, module): if self.resolved: return -# pads = 0 parents = list(self.parents) + [self] @@ -560,6 +562,8 @@ class Reply(ComplexType): def resolve(self, module): if self.resolved: return + # Reset pads count + module.pads = 0 # Add the automatic protocol fields self.fields.append(Field(tcard8, tcard8.name, 'response_type', False, True, True)) self.fields.append(_placeholder_byte) -- cgit v1.2.3