made changes to support new value-mask-pad field of valueparam structures
[free-sw/xcb/proto] / src / size.py
index 885c1ae..5ead8b2 100755 (executable)
@@ -21,7 +21,7 @@ class AnnotateSize(XMLFilterBase):
        }
        header = []
        def setTypeSize(self, name, size):
-               assert not self.types.has_key(name)
+               assert not self.types.has_key(name), "size of " + name + " declared as both " + str(size) + " and " + str(self.types[name])
                self.types[name] = size
 
        struct = None
@@ -36,6 +36,10 @@ class AnnotateSize(XMLFilterBase):
                        elif self.union is not None:
                                self.totalsize = max(self.totalsize, size)
                        attrs = AttributesUnion(attrs, bytes=str(size))
+               elif name == 'pad':
+                       assert self.union is None
+                       if self.struct is not None:
+                               self.totalsize += int(attrs['bytes'])
                elif name == 'xidtype':
                        self.setTypeSize(attrs['name'], 4)
                elif name == 'typedef':