diff options
author | Alexander Larsson <alexl@redhat.com> | 2010-07-19 15:47:40 +0200 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2010-07-19 16:28:22 +0200 |
commit | 7690a24acdfba226566773b309bf249627dec784 (patch) | |
tree | a74251c5f2573189c7f12f844adab2d0d6de110c /python_modules/marshal.py | |
parent | 12b08f2c3e07cea617255bedfd97b2eedf0f180f (diff) | |
download | spice-7690a24acdfba226566773b309bf249627dec784.tar.gz spice-7690a24acdfba226566773b309bf249627dec784.tar.xz spice-7690a24acdfba226566773b309bf249627dec784.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 cf6ad08b..6b894c16 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(): |