projects
/
free-sw
/
xcb
/
proto
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
xf86dri: fix GetDrawableInfo reply
[free-sw/xcb/proto]
/
xcbgen
/
expr.py
diff --git
a/xcbgen/expr.py
b/xcbgen/expr.py
index
522e17d
..
79ad8f6
100644
(file)
--- a/
xcbgen/expr.py
+++ b/
xcbgen/expr.py
@@
-26,7
+26,7
@@
class Expression(object):
Represents a mathematical expression for a list length or exprfield.
Public fields:
Represents a mathematical expression for a list length or exprfield.
Public fields:
- op is the operation (text +,*,/,<<) or None.
+ op is the operation (text +,*,/,<<
,~
) or None.
lhs and rhs are the sub-Expressions if op is set.
lenfield_name is the name of the length field, or None for request lists.
lenfield is the Field object for the length field, or None.
lhs and rhs are the sub-Expressions if op is set.
lenfield_name is the name of the length field, or None for request lists.
lenfield is the Field object for the length field, or None.
@@
-75,9
+75,16
@@
class Expression(object):
if self.lenfield_name == None:
self.lenfield_name = self.rhs.lenfield_name
if self.lenfield_name == None:
self.lenfield_name = self.rhs.lenfield_name
+ elif elt.tag == 'unop':
+ # Op field. Need to recurse.
+ self.op = elt.get('op')
+ self.rhs = Expression(list(elt)[0], parent)
+
+ self.lenfield_name = self.rhs.lenfield_name
+
elif elt.tag == 'value':
# Constant expression
elif elt.tag == 'value':
# Constant expression
- self.nmemb = int(elt.text)
+ self.nmemb = int(elt.text
, 0
)
else:
# Notreached
else:
# Notreached