summaryrefslogtreecommitdiffstats
path: root/python_modules/marshal.py
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2010-07-19 15:47:40 +0200
committerMarc-André Lureau <marcandre.lureau@gmail.com>2012-03-20 15:25:49 +0100
commitf008b7605df19ab5deb8f4f383837bef9416d7a1 (patch)
tree448ed01cdccfd2405f0ff669125f2c83d33d6b1c /python_modules/marshal.py
parentd9629ca4e700cb35b77579bde4ab78ad7adbb30a (diff)
downloadspice-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.py10
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():