qapi: Simplify gen_struct_field()

Rather than having all callers pass a name, type, and optional
flag, have them instead pass a QAPISchemaObjectTypeMember which
already has all that information.

No change to generated code.

Backports commit 32bc6879beea0b0cac6196cb15a71d206401e96d from qemu
This commit is contained in:
Eric Blake 2018-02-19 19:29:43 -05:00 committed by Lioncash
parent 61ad7b3824
commit 0cb457056d
No known key found for this signature in database
GPG Key ID: 4E3C3CC1031BA9C7

View File

@ -34,18 +34,18 @@ struct %(c_name)s {
c_name=c_name(name), c_type=element_type.c_type()) c_name=c_name(name), c_type=element_type.c_type())
def gen_struct_field(name, typ, optional): def gen_struct_field(member):
ret = '' ret = ''
if optional: if member.optional:
ret += mcgen(''' ret += mcgen('''
bool has_%(c_name)s; bool has_%(c_name)s;
''', ''',
c_name=c_name(name)) c_name=c_name(member.name))
ret += mcgen(''' ret += mcgen('''
%(c_type)s %(c_name)s; %(c_type)s %(c_name)s;
''', ''',
c_type=typ.c_type(), c_name=c_name(name)) c_type=member.type.c_type(), c_name=c_name(member.name))
return ret return ret
@ -58,13 +58,13 @@ def gen_struct_fields(local_members, base=None):
''', ''',
c_name=base.c_name()) c_name=base.c_name())
for memb in base.members: for memb in base.members:
ret += gen_struct_field(memb.name, memb.type, memb.optional) ret += gen_struct_field(memb)
ret += mcgen(''' ret += mcgen('''
/* Own members: */ /* Own members: */
''') ''')
for memb in local_members: for memb in local_members:
ret += gen_struct_field(memb.name, memb.type, memb.optional) ret += gen_struct_field(memb)
return ret return ret
def gen_struct(name, base, members): def gen_struct(name, base, members):