From ecce70452f5e28e111fb7acd6eac5c169ba67cff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Wed, 21 Mar 2012 01:43:29 +0100 Subject: [PATCH] codegen: struct marshallers are not current function helper This solves the issue of struct_marshallers being included within the current ifdef/endif body, although they are independant functions. --- python_modules/marshal.py | 5 +++-- spice_codegen.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/python_modules/marshal.py b/python_modules/marshal.py index d93f983..dc10a4c 100644 --- a/python_modules/marshal.py +++ b/python_modules/marshal.py @@ -99,7 +99,7 @@ class SubMarshallingSource(MarshallingSource): else: return self.parent_src.get_ref(self.name) + "." + member -def write_marshal_ptr_function(writer, target_type): +def write_marshal_ptr_function(writer, target_type, is_helper=True): if target_type.is_array(): marshal_function = "spice_marshall_array_%s" % target_type.element_type.primitive_type() else: @@ -116,7 +116,8 @@ def write_marshal_ptr_function(writer, target_type): names_args = "".join(n) header = writer.header - writer = writer.function_helper() + if is_helper: + writer = writer.function_helper() writer.header = header writer.out_prefix = "" if target_type.is_array(): diff --git a/spice_codegen.py b/spice_codegen.py index a9fdee9..759b09d 100755 --- a/spice_codegen.py +++ b/spice_codegen.py @@ -188,7 +188,7 @@ if options.generate_marshallers: if options.struct_marshallers: for structname in options.struct_marshallers: t = ptypes.lookup_type(structname) - marshal.write_marshal_ptr_function(writer, t) + marshal.write_marshal_ptr_function(writer, t, False) if options.generate_marshallers or (options.struct_marshallers and len(options.struct_marshallers) > 0): marshal.write_trailer(writer)