diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2010-06-30 22:19:12 +0200 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2010-07-02 16:47:51 +0200 |
commit | 3764a3647224a5e9dde021828d3b17fe5fc9fdeb (patch) | |
tree | 7ed113c9743447bcd43d03bc2df388f4864ef996 /python_modules/ptypes.py | |
parent | 7e0099e18e98452d909d76997258ed0f44cf9a19 (diff) | |
download | spice-3764a3647224a5e9dde021828d3b17fe5fc9fdeb.tar.gz spice-3764a3647224a5e9dde021828d3b17fe5fc9fdeb.tar.xz spice-3764a3647224a5e9dde021828d3b17fe5fc9fdeb.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 b7bcac94..055034eb 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"): |