summaryrefslogtreecommitdiffstats
path: root/scripts/qapi-types.py
diff options
context:
space:
mode:
authorPeter Maydell2016-03-06 12:53:27 +0100
committerPeter Maydell2016-03-06 12:53:27 +0100
commit1464ad45cd6cdeb0b5c1a54d3d3791396e47e52f (patch)
tree12e5fa81ad1f1cf455c598a5351c1b4248b38b84 /scripts/qapi-types.py
parentMerge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20160304'... (diff)
parentqapi: Drop useless 'data' member of unions (diff)
downloadqemu-1464ad45cd6cdeb0b5c1a54d3d3791396e47e52f.tar.gz
qemu-1464ad45cd6cdeb0b5c1a54d3d3791396e47e52f.tar.xz
qemu-1464ad45cd6cdeb0b5c1a54d3d3791396e47e52f.zip
Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2016-03-04' into staging
QAPI patches for 2016-03-04 # gpg: Signature made Sat 05 Mar 2016 09:47:19 GMT using RSA key ID EB918653 # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" * remotes/armbru/tags/pull-qapi-2016-03-04: qapi: Drop useless 'data' member of unions chardev: Drop useless ChardevDummy type qapi: Avoid use of 'data' member of QAPI unions ui: Shorten references into InputEvent util: Shorten references into SocketAddress chardev: Shorten references into ChardevBackend qapi: Update docs to match recent generator changes qapi-visit: Expose visit_type_FOO_members() qapi: Rename 'fields' to 'members' in generated C code qapi: Rename 'fields' to 'members' in generator qapi-dealloc: Reduce use outside of generated code qmp-shell: fix pretty printing of JSON responses Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'scripts/qapi-types.py')
-rw-r--r--scripts/qapi-types.py19
1 files changed, 5 insertions, 14 deletions
diff --git a/scripts/qapi-types.py b/scripts/qapi-types.py
index eac90d2fe9..0306a884c3 100644
--- a/scripts/qapi-types.py
+++ b/scripts/qapi-types.py
@@ -38,7 +38,7 @@ struct %(c_name)s {
c_name=c_name(name), c_type=element_type.c_type())
-def gen_struct_fields(members):
+def gen_struct_members(members):
ret = ''
for memb in members:
if memb.optional:
@@ -77,22 +77,22 @@ struct %(c_name)s {
/* Members inherited from %(c_name)s: */
''',
c_name=base.c_name())
- ret += gen_struct_fields(base.members)
+ ret += gen_struct_members(base.members)
ret += mcgen('''
/* Own members: */
''')
- ret += gen_struct_fields(members)
+ ret += gen_struct_members(members)
if variants:
ret += gen_variants(variants)
- # Make sure that all structs have at least one field; this avoids
+ # Make sure that all structs have at least one member; this avoids
# potential issues with attempting to malloc space for zero-length
# structs in C, and also incompatibility with C++ (where an empty
# struct is size 1).
if not (base and base.members) and not members and not variants:
ret += mcgen('''
- char qapi_dummy_field_for_empty_struct;
+ char qapi_dummy_for_empty_struct;
''')
ret += mcgen('''
@@ -116,17 +116,8 @@ static inline %(base)s *qapi_%(c_name)s_base(const %(c_name)s *obj)
def gen_variants(variants):
- # FIXME: What purpose does data serve, besides preventing a union that
- # has a branch named 'data'? We use it in qapi-visit.py to decide
- # whether to bypass the switch statement if visiting the discriminator
- # failed; but since we 0-initialize structs, and cannot tell what
- # branch of the union is in use if the discriminator is invalid, there
- # should not be any data leaks even without a data pointer. Or, if
- # 'data' is merely added to guarantee we don't have an empty union,
- # shouldn't we enforce that at .json parse time?
ret = mcgen('''
union { /* union tag is @%(c_name)s */
- void *data;
''',
c_name=c_name(variants.tag_member.name))