diff --git a/scripts/qapi-commands.py b/scripts/qapi-commands.py index 43a893b4eb..561e47a42b 100644 --- a/scripts/qapi-commands.py +++ b/scripts/qapi-commands.py @@ -175,7 +175,9 @@ def gen_marshal(name, arg_type, ret_type): ret += gen_marshal_input_visit(arg_type) ret += gen_call(name, arg_type, ret_type) - if re.search('^ *goto out;', ret, re.MULTILINE): + # 'goto out' produced by gen_marshal_input_visit->gen_visit_fields() + # for each arg_type member, and by gen_call() for ret_type + if (arg_type and arg_type.members) or ret_type: ret += mcgen(''' out: diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py index d0759d739a..2dc3aed220 100644 --- a/scripts/qapi-visit.py +++ b/scripts/qapi-visit.py @@ -87,7 +87,8 @@ static void visit_type_%(c_name)s_fields(Visitor *v, %(c_name)s **obj, Error **e ret += gen_visit_fields(members, prefix='(*obj)->') - if re.search('^ *goto out;', ret, re.MULTILINE): + # 'goto out' produced for base, and by gen_visit_fields() for each member + if base or members: ret += mcgen(''' out: