summaryrefslogtreecommitdiff
path: root/xcbgen
diff options
context:
space:
mode:
authorJaya Tiwari <tiwari.jaya18@gmail.com>2015-11-11 01:01:32 +0100
committerChristian Linhart <chris@demorecorder.com>2016-01-06 02:33:45 +0100
commit811e038c9501dfe95301d5f148be1f2b1bafbc1e (patch)
tree42d73852383f7669495d4e4e782c56c743b7ef02 /xcbgen
parentfe8ae2426d0064972a2f612d5d520879ffbd9278 (diff)
downloadxcb-proto-811e038c9501dfe95301d5f148be1f2b1bafbc1e.tar.gz
calculate lengthless list
Some rework done by Christian Linhart Signed-off-by: Jaya Tiwari <tiwari.jaya18@gmail.com> Signed-off-by: Christian Linhart <chris@demorecorder.com>
Diffstat (limited to 'xcbgen')
-rw-r--r--xcbgen/xtypes.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/xcbgen/xtypes.py b/xcbgen/xtypes.py
index f5302be..1f604de 100644
--- a/xcbgen/xtypes.py
+++ b/xcbgen/xtypes.py
@@ -268,10 +268,17 @@ class ListType(Type):
self.is_list = True
self.member = member
self.parents = list(parent)
+ lenfield_name = False
if elt.tag == 'list':
elts = list(elt)
self.expr = Expression(elts[0] if len(elts) else elt, self)
+ is_list_in_parent = self.parents[0].elt.tag in ('request', 'event', 'reply', 'error')
+ if not len(elts) and is_list_in_parent:
+ self.expr = Expression(elt,self)
+ self.expr.op = 'calculate_len'
+ else:
+ self.expr = Expression(elts[0] if len(elts) else elt, self)
self.size = member.size if member.fixed_size() else None
self.nmemb = self.expr.nmemb if self.expr.fixed_size() else None