From 76ca2c0b1527541be59c344118c538ba055ad9d8 Mon Sep 17 00:00:00 2001 From: Christoph Reimann Date: Mon, 16 Aug 2010 18:32:13 +0200 Subject: [PATCH] xcbgen: small fix to store anchestor objects more systematic xml: small fixes according to Xlib or the spec --- src/xkb.xml | 17 ++++++++++++++++- src/xproto.xml | 2 +- xcbgen/xtypes.py | 15 +++++++-------- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/xkb.xml b/src/xkb.xml index 3ccc586..760d3f0 100644 --- a/src/xkb.xml +++ b/src/xkb.xml @@ -401,8 +401,12 @@ authorization from the authors. + + + @@ -1626,7 +1630,11 @@ authorization from the authors. KTLevelNames - nKTLevels + + nTypes @@ -1975,7 +1983,14 @@ authorization from the authors. reported Types + + + + + + + diff --git a/src/xproto.xml b/src/xproto.xml index 2d76efa..87dd762 100644 --- a/src/xproto.xml +++ b/src/xproto.xml @@ -833,7 +833,7 @@ authorization from the authors. - + value_mask BackPixmap diff --git a/xcbgen/xtypes.py b/xcbgen/xtypes.py index 4836205..1a6c7ce 100644 --- a/xcbgen/xtypes.py +++ b/xcbgen/xtypes.py @@ -159,7 +159,7 @@ class ListType(Type): Type.__init__(self, member.name) self.is_list = True self.member = member - self.parent = list(parent) + self.parents = list(parent) if elt.tag == 'list': elts = list(elt) @@ -180,7 +180,7 @@ class ListType(Type): needlen = True # See if the length field is already in the structure. - for parent in self.parent: + for parent in self.parents: for field in parent.fields: if field.field_name == lenfield_name: needlen = False @@ -198,12 +198,12 @@ class ListType(Type): if self.resolved: return self.member.resolve(module) - self.expr.resolve(module, self.parent) + self.expr.resolve(module, self.parents) # Find my length field again. We need the actual Field object in the expr. # This is needed because we might have added it ourself above. if not self.fixed_size(): - for parent in self.parent: + for parent in self.parents: for field in parent.fields: if field.field_name == self.expr.lenfield_name and field.wire: self.expr.lenfield = field @@ -357,7 +357,7 @@ class SwitchType(ComplexType): def __init__(self, name, elt, *parents): ComplexType.__init__(self, name, elt) - self.parent = parents + self.parents = parents # FIXME: switch cannot store lenfields, so it should just delegate the parents self.lenfield_parent = list(parents) + [self] # self.fields contains all possible fields collected from the Bitcase objects, @@ -373,7 +373,7 @@ class SwitchType(ComplexType): return # pads = 0 - parents = list(self.parent) + [self] + parents = list(self.parents) + [self] # Resolve all of our field datatypes. for index, child in enumerate(list(self.elt)): @@ -413,7 +413,6 @@ class SwitchType(ComplexType): self.calc_size() # Figure out how big we are self.resolved = True - # FIXME: really necessary for Switch?? def make_member_of(self, module, complex_type, field_type, field_name, visible, wire, auto): if not self.fixed_size(): # We need a length field. @@ -424,7 +423,7 @@ class SwitchType(ComplexType): needlen = True # See if the length field is already in the structure. - for parent in self.parent: + for parent in self.parents: for field in parent.fields: if field.field_name == lenfield_name: needlen = False -- 2.7.4