summaryrefslogtreecommitdiffstats
path: root/scripts/qapi/visit.py
diff options
context:
space:
mode:
authorPeter Maydell2018-06-22 18:08:57 +0200
committerPeter Maydell2018-06-22 18:08:58 +0200
commit7ed14cbf3cf083f125c079bd02b3215941853830 (patch)
treea845e5314ea1b5af5aa4a4b9c9af7d9c2aa9605c /scripts/qapi/visit.py
parentMerge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20180622'... (diff)
parentMAINTAINERS: Update QAPI stanza for commit fb0bc835e56 (diff)
downloadqemu-7ed14cbf3cf083f125c079bd02b3215941853830.tar.gz
qemu-7ed14cbf3cf083f125c079bd02b3215941853830.tar.xz
qemu-7ed14cbf3cf083f125c079bd02b3215941853830.zip
Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2018-06-22' into staging
QAPI patches for 2018-06-22 # gpg: Signature made Fri 22 Jun 2018 15:36:22 BST # gpg: using RSA key 3870B400EB918653 # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * remotes/armbru/tags/pull-qapi-2018-06-22: MAINTAINERS: Update QAPI stanza for commit fb0bc835e56 qapi/introspect: Eliminate pointless variable in .visit_end() Revert commit d4e5ec877ca qapi: Open files with encoding='utf-8' qapi: remove empty flat union branches and types qapi: allow empty branches in flat unions tests: Add QDict clone-flatten test qdict: Make qdict_flatten() shallow-clone-friendly qapi/events: generate event enum in main module qapi/visit: remove useless prefix argument Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'scripts/qapi/visit.py')
-rw-r--r--scripts/qapi/visit.py21
1 files changed, 15 insertions, 6 deletions
diff --git a/scripts/qapi/visit.py b/scripts/qapi/visit.py
index 5d72d8936c..bdcafb64ee 100644
--- a/scripts/qapi/visit.py
+++ b/scripts/qapi/visit.py
@@ -81,15 +81,24 @@ void visit_type_%(c_name)s_members(Visitor *v, %(c_name)s *obj, Error **errp)
c_name=c_name(variants.tag_member.name))
for var in variants.variants:
- ret += mcgen('''
+ case_str = c_enum_const(variants.tag_member.type.name,
+ var.name,
+ variants.tag_member.type.prefix)
+ if var.type.name == 'q_empty':
+ # valid variant and nothing to do
+ ret += mcgen('''
+ case %(case)s:
+ break;
+''',
+ case=case_str)
+ else:
+ ret += mcgen('''
case %(case)s:
visit_type_%(c_type)s_members(v, &obj->u.%(c_name)s, &err);
break;
''',
- case=c_enum_const(variants.tag_member.type.name,
- var.name,
- variants.tag_member.type.prefix),
- c_type=var.type.c_name(), c_name=c_name(var.name))
+ case=case_str,
+ c_type=var.type.c_name(), c_name=c_name(var.name))
ret += mcgen('''
default:
@@ -293,7 +302,7 @@ class QAPISchemaGenVisitVisitor(QAPISchemaModularCVisitor):
#include "qapi/qmp/qerror.h"
#include "%(visit)s.h"
''',
- visit=visit, prefix=self._prefix))
+ visit=visit))
self._genh.preamble_add(mcgen('''
#include "qapi/qapi-builtin-visit.h"
#include "%(types)s.h"