diff options
| author | Alexander Larsson <alexl@redhat.com> | 2010-07-19 15:47:40 +0200 |
|---|---|---|
| committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2012-03-20 15:25:49 +0100 |
| commit | f008b7605df19ab5deb8f4f383837bef9416d7a1 (patch) | |
| tree | 448ed01cdccfd2405f0ff669125f2c83d33d6b1c /python_modules/marshal.py | |
| parent | d9629ca4e700cb35b77579bde4ab78ad7adbb30a (diff) | |
| download | spice-protocol-f008b7605df19ab5deb8f4f383837bef9416d7a1.tar.gz spice-protocol-f008b7605df19ab5deb8f4f383837bef9416d7a1.tar.xz spice-protocol-f008b7605df19ab5deb8f4f383837bef9416d7a1.zip | |
codegen: Allow @to_ptr to make inline structs demarshal as pointers
Diffstat (limited to 'python_modules/marshal.py')
| -rw-r--r-- | python_modules/marshal.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/python_modules/marshal.py b/python_modules/marshal.py index cf6ad08..6b894c1 100644 --- a/python_modules/marshal.py +++ b/python_modules/marshal.py @@ -87,10 +87,16 @@ class SubMarshallingSource(MarshallingSource): self.is_helper = False def get_self_ref(self): - return "&%s" % self.parent_src.get_ref(self.name) + if self.containee.has_attr("to_ptr"): + return "%s" % self.parent_src.get_ref(self.name) + else: + return "&%s" % self.parent_src.get_ref(self.name) def get_ref(self, member): - return self.parent_src.get_ref(self.name) + "." + member + if self.containee.has_attr("to_ptr"): + return self.parent_src.get_ref(self.name) + "->" + member + else: + return self.parent_src.get_ref(self.name) + "." + member def write_marshal_ptr_function(writer, target_type): if target_type.is_array(): |
