@@ -1656,14 +1656,6 @@ def gen_params(arg_type, extra):
return ret
-def gen_err_check():
- return mcgen('''
- if (err) {
- goto out;
- }
-''')
-
-
#
# Common command line parsing
#
@@ -46,8 +46,10 @@ def gen_call(name, arg_type, ret_type):
''',
c_name=c_name(name), args=argstr, lhs=lhs)
if ret_type:
- ret += gen_err_check()
ret += mcgen('''
+ if (err) {
+ goto out;
+ }
qmp_marshal_output_%(c_name)s(retval, ret, &err);
''',
@@ -47,9 +47,11 @@ void visit_type_%(c_name)s_members(Visitor *v, %(c_name)s *obj, Error **errp)
if base:
ret += mcgen('''
visit_type_%(c_type)s_members(v, (%(c_type)s *)obj, &err);
+ if (err) {
+ goto out;
+ }
''',
c_type=base.c_name())
- ret += gen_err_check()
for memb in members:
if memb.optional:
@@ -60,10 +62,12 @@ void visit_type_%(c_name)s_members(Visitor *v, %(c_name)s *obj, Error **errp)
push_indent()
ret += mcgen('''
visit_type_%(c_type)s(v, "%(name)s", &obj->%(c_name)s, &err);
+ if (err) {
+ goto out;
+ }
''',
c_type=memb.type.c_name(), name=memb.name,
c_name=c_name(memb.name))
- ret += gen_err_check()
if memb.optional:
pop_indent()
ret += mcgen('''
Ever since commit 12f254f removed the last parameterization of gen_err_check(), it no longer makes sense to hide the three lines of generated C code behind a macro call. Just inline it into the remaining users. No change to generated code. Signed-off-by: Eric Blake <eblake@redhat.com> --- v9: new patch v8: new patch --- scripts/qapi.py | 8 -------- scripts/qapi-commands.py | 4 +++- scripts/qapi-visit.py | 8 ++++++-- 3 files changed, 9 insertions(+), 11 deletions(-)