diff options
| author | Alexander Larsson <alexl@redhat.com> | 2010-06-23 13:37:25 +0200 |
|---|---|---|
| committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2012-03-20 15:25:45 +0100 |
| commit | 21c7a6d278570adc7cabdf08b75d35cd85bd4ca6 (patch) | |
| tree | 08dc724851c9f8979d4ac447b2ab71a7c816be19 /python_modules | |
| parent | ce0f0032f461cc054946773598b7486d676a00dc (diff) | |
| download | spice-common-21c7a6d278570adc7cabdf08b75d35cd85bd4ca6.tar.gz spice-common-21c7a6d278570adc7cabdf08b75d35cd85bd4ca6.tar.xz spice-common-21c7a6d278570adc7cabdf08b75d35cd85bd4ca6.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 101538c..9141539 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): |
