diff options
author | Peter Harris <pharris@opentext.com> | 2014-01-14 14:45:15 -0500 |
---|---|---|
committer | Peter Harris <pharris@opentext.com> | 2014-01-21 15:22:43 -0500 |
commit | a05a5106354c62d0862f8ed4f90d75bbf51e593f (patch) | |
tree | fe2ecd2ebfb58175526d98e3e8bcac8ee6d58dfe /xcbgen | |
parent | 0d8f09b6469c45be08dae3665d352269ffcc7df2 (diff) | |
download | xcb-proto-a05a5106354c62d0862f8ed4f90d75bbf51e593f.tar.gz |
Track pad count at the module level
If the pad count is reset for each bitcase, the names will collide
in the encompasing switch struct.
Reviewed-By: Ran Benita <ran234@gmail.com>
Signed-off-by: Peter Harris <pharris@opentext.com>
Diffstat (limited to 'xcbgen')
-rw-r--r-- | xcbgen/state.py | 1 | ||||
-rw-r--r-- | xcbgen/xtypes.py | 8 |
2 files changed, 5 insertions, 4 deletions
diff --git a/xcbgen/state.py b/xcbgen/state.py index 10a8722..52b8d8d 100644 --- a/xcbgen/state.py +++ b/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/xcbgen/xtypes.py b/xcbgen/xtypes.py index 5f45723..e9596a9 100644 --- a/xcbgen/xtypes.py +++ b/xcbgen/xtypes.py @@ -296,16 +296,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 +396,6 @@ class SwitchType(ComplexType): def resolve(self, module): if self.resolved: return -# pads = 0 parents = list(self.parents) + [self] @@ -560,6 +558,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) |