mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06:00
qapi: Disallow qmp_marshal_FOO(NULL, ...)
For QMP commands without arguments, gen_marshal() laboriously generates a qmp_marshal_FOO() that copes with null @args. Turns there's just one caller that passes null instead of an empty QDict. Adjust that caller, and simplify gen_marshal(). Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20200424084338.26803-15-armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
ea097dff0f
commit
2061487bdb
3 changed files with 7 additions and 26 deletions
|
@ -104,6 +104,7 @@ def gen_marshal(name, arg_type, boxed, ret_type):
|
|||
%(proto)s
|
||||
{
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
''',
|
||||
proto=build_marshal_proto(name))
|
||||
|
||||
|
@ -117,21 +118,14 @@ def gen_marshal(name, arg_type, boxed, ret_type):
|
|||
visit_members = ('visit_type_%s_members(v, &arg, &err);'
|
||||
% arg_type.c_name())
|
||||
ret += mcgen('''
|
||||
Visitor *v;
|
||||
%(c_name)s arg = {0};
|
||||
|
||||
''',
|
||||
c_name=arg_type.c_name())
|
||||
else:
|
||||
visit_members = ''
|
||||
ret += mcgen('''
|
||||
Visitor *v = NULL;
|
||||
|
||||
if (args) {
|
||||
''')
|
||||
push_indent()
|
||||
|
||||
ret += mcgen('''
|
||||
|
||||
v = qobject_input_visitor_new(QOBJECT(args));
|
||||
visit_start_struct(v, NULL, NULL, 0, &err);
|
||||
if (err) {
|
||||
|
@ -148,12 +142,6 @@ def gen_marshal(name, arg_type, boxed, ret_type):
|
|||
''',
|
||||
visit_members=visit_members)
|
||||
|
||||
if not have_args:
|
||||
pop_indent()
|
||||
ret += mcgen('''
|
||||
}
|
||||
''')
|
||||
|
||||
ret += gen_call(name, arg_type, boxed, ret_type)
|
||||
|
||||
ret += mcgen('''
|
||||
|
@ -168,10 +156,6 @@ out:
|
|||
% arg_type.c_name())
|
||||
else:
|
||||
visit_members = ''
|
||||
ret += mcgen('''
|
||||
if (args) {
|
||||
''')
|
||||
push_indent()
|
||||
|
||||
ret += mcgen('''
|
||||
v = qapi_dealloc_visitor_new();
|
||||
|
@ -182,12 +166,6 @@ out:
|
|||
''',
|
||||
visit_members=visit_members)
|
||||
|
||||
if not have_args:
|
||||
pop_indent()
|
||||
ret += mcgen('''
|
||||
}
|
||||
''')
|
||||
|
||||
ret += mcgen('''
|
||||
}
|
||||
''')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue