We currently have 2 very similar codepaths in the marshaller and demarshaller cases which check whether we are building client or server code, error out if we specified neither on the command line and then they call the same function with True or False for client/server. We can factor this code a little bit to make things a bit simpler. --- spice_codegen.py | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/spice_codegen.py b/spice_codegen.py index 410acbd..e1aab3a 100755 --- a/spice_codegen.py +++ b/spice_codegen.py @@ -217,28 +217,24 @@ if options.includes: if options.generate_enums or options.generate_dissector: write_enums(writer, options.generate_dissector) +if not options.server and not options.client: + print >> sys.stderr, "Must specify client and/or server" + sys.exit(1) + +if options.client: + is_client = True +else: + is_client = False + if options.generate_demarshallers: - if not options.server and not options.client: - print >> sys.stderr, "Must specify client and/or server" - sys.exit(1) demarshal.write_includes(writer) - - if options.server: - demarshal.write_protocol_parser(writer, proto, False) - if options.client: - demarshal.write_protocol_parser(writer, proto, True) + demarshal.write_protocol_parser(writer, proto, is_client) if options.generate_marshallers or (options.struct_marshallers and len(options.struct_marshallers) > 0): marshal.write_includes(writer) if options.generate_marshallers: - if not options.server and not options.client: - print >> sys.stderr, "Must specify client and/or server" - sys.exit(1) - if options.server: - marshal.write_protocol_marshaller(writer, proto, False, options.private_marshallers) - if options.client: - marshal.write_protocol_marshaller(writer, proto, True, options.private_marshallers) + marshal.write_protocol_marshaller(writer, proto, is_client, options.private_marshallers) if options.struct_marshallers: for structname in options.struct_marshallers: -- 2.7.4 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel