diff options
author | Alexander Larsson <alexl@redhat.com> | 2010-06-23 13:37:25 +0200 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2010-06-23 16:33:07 +0200 |
commit | 06fe6a91c2e5eb91ae97b4f3b09c02aa07953768 (patch) | |
tree | 3e4c9a6533a91323da1d1986e865b848cac4996d /python_modules | |
parent | 10c16b3c82f179e05360d38c29431115895dcba5 (diff) | |
download | spice-06fe6a91c2e5eb91ae97b4f3b09c02aa07953768.tar.gz spice-06fe6a91c2e5eb91ae97b4f3b09c02aa07953768.tar.xz spice-06fe6a91c2e5eb91ae97b4f3b09c02aa07953768.zip |
Fix handling of @ptr32 network size
Diffstat (limited to 'python_modules')
-rw-r--r-- | python_modules/ptypes.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/python_modules/ptypes.py b/python_modules/ptypes.py index 101538ca..9141539c 100644 --- a/python_modules/ptypes.py +++ b/python_modules/ptypes.py @@ -426,6 +426,7 @@ class PointerType(Type): Type.__init__(self) self.name = None self.target_type = target_type + self.pointer_size = 8 def __str__(self): return "%s*" % (str(self.target_type)) @@ -434,8 +435,8 @@ class PointerType(Type): self.target_type = self.target_type.resolve() return self - def get_fixed_size(self): - return 8 # offsets are 64bit + def set_ptr_size(self, new_size): + self.pointer_size = new_size def is_fixed_nw_size(self): return True @@ -444,10 +445,13 @@ class PointerType(Type): return True def primitive_type(self): - return "uint64" + if self.pointer_size == 4: + return "uint32" + else: + return "uint64" def get_fixed_nw_size(self): - return 8 + return self.pointer_size def c_type(self): return "SPICE_ADDRESS" @@ -504,6 +508,8 @@ class Member(Containee): self.container = container self.member_type = self.member_type.resolve() self.member_type.register() + if self.has_attr("ptr32") and self.member_type.is_pointer(): + self.member_type.set_ptr_size(4) return self def is_primitive(self): |