diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2010-06-30 22:19:12 +0200 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2012-03-20 15:25:46 +0100 |
commit | 6228ae633e58f484f0da5cc20dcfbf42ead4859b (patch) | |
tree | d640e227be1e83be7ce3538ed3b3ea640940fb1a /python_modules/ptypes.py | |
parent | 8ec1247dbe40ca7d0678e95c45f0d3a7b8908b77 (diff) | |
download | spice-protocol-6228ae633e58f484f0da5cc20dcfbf42ead4859b.tar.gz spice-protocol-6228ae633e58f484f0da5cc20dcfbf42ead4859b.tar.xz spice-protocol-6228ae633e58f484f0da5cc20dcfbf42ead4859b.zip |
Properly parse and marshall SpiceString
Diffstat (limited to 'python_modules/ptypes.py')
-rw-r--r-- | python_modules/ptypes.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/python_modules/ptypes.py b/python_modules/ptypes.py index b7bcac9..055034e 100644 --- a/python_modules/ptypes.py +++ b/python_modules/ptypes.py @@ -353,6 +353,7 @@ class ArrayType(Type): self.element_type = element_type self.size = size + self.ptr_array = False def __str__(self): if self.size == None: @@ -414,6 +415,9 @@ class ArrayType(Type): return [] raise Exception, "Pointer names in arrays not supported" + def is_extra_size(self): + return self.ptr_array + def contains_extra_size(self): return self.element_type.contains_extra_size() @@ -512,6 +516,8 @@ class Member(Containee): self.member_type.register() if self.has_attr("ptr32") and self.member_type.is_pointer(): self.member_type.set_ptr_size(4) + if self.has_attr("ptr_array") and self.member_type.is_array(): + self.member_type.ptr_array = True return self def is_primitive(self): @@ -523,7 +529,7 @@ class Member(Containee): return self.member_type.is_fixed_sizeof() def is_extra_size(self): - return self.has_end_attr() + return self.has_end_attr() or self.member_type.is_extra_size() def is_fixed_nw_size(self): if self.has_attr("virtual"): |