summaryrefslogtreecommitdiff
path: root/xcbgen
diff options
context:
space:
mode:
authorPeter Harris <pharris@opentext.com>2014-01-14 14:45:15 -0500
committerPeter Harris <pharris@opentext.com>2014-01-21 15:22:43 -0500
commita05a5106354c62d0862f8ed4f90d75bbf51e593f (patch)
treefe2ecd2ebfb58175526d98e3e8bcac8ee6d58dfe /xcbgen
parent0d8f09b6469c45be08dae3665d352269ffcc7df2 (diff)
downloadxcb-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.py1
-rw-r--r--xcbgen/xtypes.py8
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)