Changed xgbgen to support xcb-proto 1.12

* Added minimal support for switch fields.
* Changed the way Size is calculated to accomodate for lists inside structs
  (added to randr)
* Removed heuristic to place alignment gaps, they are now explicitly
  described in xml
This commit is contained in:
aarzilli
2017-01-18 09:53:26 +01:00
committed by Přemysl Janouch
parent a102c4056f
commit 1c01d79ba1
9 changed files with 174 additions and 158 deletions

View File

@@ -105,17 +105,15 @@ func (r *Request) Size(c *Context) Size {
}
for _, field := range r.Fields {
switch field.(type) {
switch field := field.(type) {
case *LocalField: // local fields don't go over the wire
continue
case *SingleField:
// mofos!!!
if r.SrcName() == "ConfigureWindow" &&
field.SrcName() == "ValueMask" {
continue
fsz := field.Size()
if _, isstruct := field.Type.(*Struct); isstruct {
fsz.Expression = fsz.Expression.Specialize(field.SrcName())
}
size = size.Add(field.Size())
size = size.Add(fsz)
default:
size = size.Add(field.Size())
}