X-Git-Url: http://git.demorecorder.com/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fsize.py;h=5ead8b23800d05e12adf5c09a26223d8668cd2e7;hb=57934caa3fb207320c33312646d8e98290950f51;hp=885c1aebc16c3c2ac38d4c50f8f9eb8b8d9f9435;hpb=7aee7e35d3acdb6b68e27500f9d61cb15529f900;p=free-sw%2Fxcb%2Fproto diff --git a/src/size.py b/src/size.py index 885c1ae..5ead8b2 100755 --- a/src/size.py +++ b/src/size.py @@ -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':