qapi: Drop unused and useless parameters and variables

gen_sync_call()'s parameter indent is useless: gen_sync_call() uses it
only as optional argument for push_indent() and pop_indent(), their
default is four, and gen_sync_call()'s only caller passes four.  Drop
the parameter.

gen_visitor_input_containers_decl()'s parameter obj is always
"QOBJECT(args)".  Use that, and drop the parameter.

Drop unused parameters of gen_marshal_output(),
gen_marshal_input_decl(), generate_visit_struct_body(),
generate_visit_list(), generate_visit_enum(), generate_declaration(),
generate_enum_declaration(), generate_decl_enum().

Drop unused variables in generate_event_enum_lookup(),
generate_enum_lookup(), generate_visit_struct_fields(), check_event().

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Markus Armbruster 2015-06-28 21:36:26 +02:00
parent 1cf47a15f1
commit 5aa05d3f72
5 changed files with 35 additions and 42 deletions

View File

@ -38,7 +38,7 @@ if (local_err) {
''') ''')
return '' return ''
def gen_sync_call(name, args, ret_type, indent=0): def gen_sync_call(name, args, ret_type):
ret = "" ret = ""
arglist="" arglist=""
retval="" retval=""
@ -48,7 +48,7 @@ def gen_sync_call(name, args, ret_type, indent=0):
if optional: if optional:
arglist += "has_%s, " % c_name(argname) arglist += "has_%s, " % c_name(argname)
arglist += "%s, " % (c_name(argname)) arglist += "%s, " % (c_name(argname))
push_indent(indent) push_indent()
ret = mcgen(''' ret = mcgen('''
%(retval)sqmp_%(name)s(%(args)s&local_err); %(retval)sqmp_%(name)s(%(args)s&local_err);
@ -60,7 +60,7 @@ def gen_sync_call(name, args, ret_type, indent=0):
%(marshal_output_call)s %(marshal_output_call)s
''', ''',
marshal_output_call=gen_marshal_output_call(name, ret_type)).rstrip() marshal_output_call=gen_marshal_output_call(name, ret_type)).rstrip()
pop_indent(indent) pop_indent()
return ret.rstrip() return ret.rstrip()
@ -69,17 +69,16 @@ def gen_marshal_output_call(name, ret_type):
return "" return ""
return "qmp_marshal_output_%s(retval, ret, &local_err);" % c_name(name) return "qmp_marshal_output_%s(retval, ret, &local_err);" % c_name(name)
def gen_visitor_input_containers_decl(args, obj): def gen_visitor_input_containers_decl(args):
ret = "" ret = ""
push_indent() push_indent()
if len(args) > 0: if len(args) > 0:
ret += mcgen(''' ret += mcgen('''
QmpInputVisitor *mi = qmp_input_visitor_new_strict(%(obj)s); QmpInputVisitor *mi = qmp_input_visitor_new_strict(QOBJECT(args));
QapiDeallocVisitor *md; QapiDeallocVisitor *md;
Visitor *v; Visitor *v;
''', ''')
obj=obj)
pop_indent() pop_indent()
return ret.rstrip() return ret.rstrip()
@ -161,7 +160,7 @@ qapi_dealloc_visitor_cleanup(md);
pop_indent() pop_indent()
return ret.rstrip() return ret.rstrip()
def gen_marshal_output(name, args, ret_type, middle_mode): def gen_marshal_output(name, ret_type):
if not ret_type: if not ret_type:
return "" return ""
@ -194,14 +193,14 @@ out:
return ret return ret
def gen_marshal_input_decl(name, args, ret_type, middle_mode): def gen_marshal_input_decl(name, middle_mode):
ret = 'void qmp_marshal_input_%s(QDict *args, QObject **ret, Error **errp)' % c_name(name) ret = 'void qmp_marshal_input_%s(QDict *args, QObject **ret, Error **errp)' % c_name(name)
if not middle_mode: if not middle_mode:
ret = "static " + ret ret = "static " + ret
return ret return ret
def gen_marshal_input(name, args, ret_type, middle_mode): def gen_marshal_input(name, args, ret_type, middle_mode):
hdr = gen_marshal_input_decl(name, args, ret_type, middle_mode) hdr = gen_marshal_input_decl(name, middle_mode)
ret = mcgen(''' ret = mcgen('''
%(header)s %(header)s
@ -228,7 +227,7 @@ def gen_marshal_input(name, args, ret_type, middle_mode):
%(visitor_input_block)s %(visitor_input_block)s
''', ''',
visitor_input_containers_decl=gen_visitor_input_containers_decl(args, "QOBJECT(args)"), visitor_input_containers_decl=gen_visitor_input_containers_decl(args),
visitor_input_vars_decl=gen_visitor_input_vars_decl(args), visitor_input_vars_decl=gen_visitor_input_vars_decl(args),
visitor_input_block=gen_visitor_input_block(args)) visitor_input_block=gen_visitor_input_block(args))
else: else:
@ -240,7 +239,7 @@ def gen_marshal_input(name, args, ret_type, middle_mode):
ret += mcgen(''' ret += mcgen('''
%(sync_call)s %(sync_call)s
''', ''',
sync_call=gen_sync_call(name, args, ret_type, indent=4)) sync_call=gen_sync_call(name, args, ret_type))
if re.search('^ *goto out\\;', ret, re.MULTILINE): if re.search('^ *goto out\\;', ret, re.MULTILINE):
ret += mcgen(''' ret += mcgen('''
@ -360,11 +359,11 @@ for cmd in commands:
ret = generate_command_decl(cmd['command'], arglist, ret_type) + "\n" ret = generate_command_decl(cmd['command'], arglist, ret_type) + "\n"
fdecl.write(ret) fdecl.write(ret)
if ret_type: if ret_type:
ret = gen_marshal_output(cmd['command'], arglist, ret_type, middle_mode) + "\n" ret = gen_marshal_output(cmd['command'], ret_type) + "\n"
fdef.write(ret) fdef.write(ret)
if middle_mode: if middle_mode:
fdecl.write('%s;\n' % gen_marshal_input_decl(cmd['command'], arglist, ret_type, middle_mode)) fdecl.write('%s;\n' % gen_marshal_input_decl(cmd['command'], middle_mode))
ret = gen_marshal_input(cmd['command'], arglist, ret_type, middle_mode) + "\n" ret = gen_marshal_input(cmd['command'], arglist, ret_type, middle_mode) + "\n"
fdef.write(ret) fdef.write(ret)

View File

@ -199,7 +199,6 @@ const char *%(event_enum_name)s_lookup[] = {
''', ''',
event_enum_name = event_enum_name) event_enum_name = event_enum_name)
i = 0
for string in event_enum_strings: for string in event_enum_strings:
ret += mcgen(''' ret += mcgen('''
"%(string)s", "%(string)s",

View File

@ -108,7 +108,6 @@ def generate_enum_lookup(name, values):
const char * const %(name)s_lookup[] = { const char * const %(name)s_lookup[] = {
''', ''',
name=c_name(name)) name=c_name(name))
i = 0
for value in values: for value in values:
index = c_enum_const(name, value) index = c_enum_const(name, value)
ret += mcgen(''' ret += mcgen('''

View File

@ -40,7 +40,6 @@ static void visit_type_implicit_%(c_type)s(Visitor *m, %(c_type)s **obj, Error *
c_type=type_name(type)) c_type=type_name(type))
def generate_visit_struct_fields(name, members, base = None): def generate_visit_struct_fields(name, members, base = None):
substructs = []
ret = '' ret = ''
if base: if base:
@ -103,7 +102,7 @@ out:
return ret return ret
def generate_visit_struct_body(name, members): def generate_visit_struct_body(name):
ret = mcgen(''' ret = mcgen('''
Error *err = NULL; Error *err = NULL;
@ -135,14 +134,14 @@ void visit_type_%(name)s(Visitor *m, %(name)s **obj, const char *name, Error **e
''', ''',
name=c_name(name)) name=c_name(name))
ret += generate_visit_struct_body(name, members) ret += generate_visit_struct_body(name)
ret += mcgen(''' ret += mcgen('''
} }
''') ''')
return ret return ret
def generate_visit_list(name, members): def generate_visit_list(name):
return mcgen(''' return mcgen('''
void visit_type_%(name)sList(Visitor *m, %(name)sList **obj, const char *name, Error **errp) void visit_type_%(name)sList(Visitor *m, %(name)sList **obj, const char *name, Error **errp)
@ -171,7 +170,7 @@ out:
''', ''',
name=type_name(name)) name=type_name(name))
def generate_visit_enum(name, members): def generate_visit_enum(name):
return mcgen(''' return mcgen('''
void visit_type_%(name)s(Visitor *m, %(name)s *obj, const char *name, Error **errp) void visit_type_%(name)s(Visitor *m, %(name)s *obj, const char *name, Error **errp)
@ -252,7 +251,7 @@ def generate_visit_union(expr):
else: else:
# There will always be a discriminator in the C switch code, by default # There will always be a discriminator in the C switch code, by default
# it is an enum type generated silently # it is an enum type generated silently
ret = generate_visit_enum(name + 'Kind', members.keys()) ret = generate_visit_enum(name + 'Kind')
disc_type = c_name(name) + 'Kind' disc_type = c_name(name) + 'Kind'
if base: if base:
@ -340,7 +339,7 @@ out:
return ret return ret
def generate_declaration(name, members, builtin_type=False): def generate_declaration(name, builtin_type=False):
ret = "" ret = ""
if not builtin_type: if not builtin_type:
name = c_name(name) name = c_name(name)
@ -357,7 +356,7 @@ void visit_type_%(name)sList(Visitor *m, %(name)sList **obj, const char *name, E
return ret return ret
def generate_enum_declaration(name, members): def generate_enum_declaration(name):
ret = mcgen(''' ret = mcgen('''
void visit_type_%(name)sList(Visitor *m, %(name)sList **obj, const char *name, Error **errp); void visit_type_%(name)sList(Visitor *m, %(name)sList **obj, const char *name, Error **errp);
''', ''',
@ -365,7 +364,7 @@ void visit_type_%(name)sList(Visitor *m, %(name)sList **obj, const char *name, E
return ret return ret
def generate_decl_enum(name, members): def generate_decl_enum(name):
return mcgen(''' return mcgen('''
void visit_type_%(name)s(Visitor *m, %(name)s *obj, const char *name, Error **errp); void visit_type_%(name)s(Visitor *m, %(name)s *obj, const char *name, Error **errp);
@ -433,7 +432,7 @@ exprs = parse_schema(input_file)
# for built-in types in our header files and simply guard them # for built-in types in our header files and simply guard them
fdecl.write(guardstart("QAPI_VISIT_BUILTIN_VISITOR_DECL")) fdecl.write(guardstart("QAPI_VISIT_BUILTIN_VISITOR_DECL"))
for typename in builtin_types.keys(): for typename in builtin_types.keys():
fdecl.write(generate_declaration(typename, None, builtin_type=True)) fdecl.write(generate_declaration(typename, builtin_type=True))
fdecl.write(guardend("QAPI_VISIT_BUILTIN_VISITOR_DECL")) fdecl.write(guardend("QAPI_VISIT_BUILTIN_VISITOR_DECL"))
# ...this doesn't work for cases where we link in multiple objects that # ...this doesn't work for cases where we link in multiple objects that
@ -441,44 +440,42 @@ fdecl.write(guardend("QAPI_VISIT_BUILTIN_VISITOR_DECL"))
# over these cases # over these cases
if do_builtins: if do_builtins:
for typename in builtin_types.keys(): for typename in builtin_types.keys():
fdef.write(generate_visit_list(typename, None)) fdef.write(generate_visit_list(typename))
for expr in exprs: for expr in exprs:
if expr.has_key('struct'): if expr.has_key('struct'):
ret = generate_visit_struct(expr) ret = generate_visit_struct(expr)
ret += generate_visit_list(expr['struct'], expr['data']) ret += generate_visit_list(expr['struct'])
fdef.write(ret) fdef.write(ret)
ret = generate_declaration(expr['struct'], expr['data']) ret = generate_declaration(expr['struct'])
fdecl.write(ret) fdecl.write(ret)
elif expr.has_key('union'): elif expr.has_key('union'):
ret = generate_visit_union(expr) ret = generate_visit_union(expr)
ret += generate_visit_list(expr['union'], expr['data']) ret += generate_visit_list(expr['union'])
fdef.write(ret) fdef.write(ret)
enum_define = discriminator_find_enum_define(expr) enum_define = discriminator_find_enum_define(expr)
ret = "" ret = ""
if not enum_define: if not enum_define:
ret = generate_decl_enum('%sKind' % expr['union'], ret = generate_decl_enum('%sKind' % expr['union'])
expr['data'].keys()) ret += generate_declaration(expr['union'])
ret += generate_declaration(expr['union'], expr['data'])
fdecl.write(ret) fdecl.write(ret)
elif expr.has_key('alternate'): elif expr.has_key('alternate'):
ret = generate_visit_alternate(expr['alternate'], expr['data']) ret = generate_visit_alternate(expr['alternate'], expr['data'])
ret += generate_visit_list(expr['alternate'], expr['data']) ret += generate_visit_list(expr['alternate'])
fdef.write(ret) fdef.write(ret)
ret = generate_decl_enum('%sKind' % expr['alternate'], ret = generate_decl_enum('%sKind' % expr['alternate'])
expr['data'].keys()) ret += generate_declaration(expr['alternate'])
ret += generate_declaration(expr['alternate'], expr['data'])
fdecl.write(ret) fdecl.write(ret)
elif expr.has_key('enum'): elif expr.has_key('enum'):
ret = generate_visit_list(expr['enum'], expr['data']) ret = generate_visit_list(expr['enum'])
ret += generate_visit_enum(expr['enum'], expr['data']) ret += generate_visit_enum(expr['enum'])
fdef.write(ret) fdef.write(ret)
ret = generate_decl_enum(expr['enum'], expr['data']) ret = generate_decl_enum(expr['enum'])
ret += generate_enum_declaration(expr['enum'], expr['data']) ret += generate_enum_declaration(expr['enum'])
fdecl.write(ret) fdecl.write(ret)
close_output(fdef, fdecl) close_output(fdef, fdecl)

View File

@ -507,7 +507,6 @@ def check_command(expr, expr_info):
def check_event(expr, expr_info): def check_event(expr, expr_info):
global events global events
name = expr['event'] name = expr['event']
params = expr.get('data')
if name.upper() == 'MAX': if name.upper() == 'MAX':
raise QAPIExprError(expr_info, "Event name 'MAX' cannot be created") raise QAPIExprError(expr_info, "Event name 'MAX' cannot be created")