aboutsummaryrefslogtreecommitdiff
path: root/scripts/qapi-types.py
diff options
context:
space:
mode:
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))