Fix a type size calculation.
[free-sw/xcb/proto] / xcbgen / types.py
index a84420f..d4b16e2 100644 (file)
@@ -25,6 +25,7 @@ class Type(object):
         self.resolved = False
 
         # Screw isinstance().
+        self.is_simple = False
         self.is_list = False
         self.is_expr = False
         self.is_container = False
@@ -82,6 +83,7 @@ class SimpleType(Type):
     '''
     def __init__(self, name, size):
         Type.__init__(self, name)
+        self.is_simple = True
         self.size = size
         self.nmemb = 1
 
@@ -316,7 +318,7 @@ class ComplexType(Type):
             if not m.wire:
                 continue
             if m.type.fixed_size():
-                self.size = self.size + m.type.size
+                self.size = self.size + (m.type.size * m.type.nmemb)
             else:
                 self.size = None
                 break