diff options
author | Jaya Tiwari <tiwari.jaya18@gmail.com> | 2015-11-11 01:01:32 +0100 |
---|---|---|
committer | Christian Linhart <chris@demorecorder.com> | 2016-01-06 02:33:45 +0100 |
commit | 811e038c9501dfe95301d5f148be1f2b1bafbc1e (patch) | |
tree | 42d73852383f7669495d4e4e782c56c743b7ef02 /xcbgen | |
parent | fe8ae2426d0064972a2f612d5d520879ffbd9278 (diff) | |
download | xcb-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.py | 7 |
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 |