qapi: Rename 'fields' to 'members' in generator

C types and JSON objects don't have fields, but members. We
shouldn't gratuitously invent terminology. This patch is a
strict renaming of generator code internals (including testsuite
comments), before later patches rename C interfaces.

No change to generated code with this patch.

Backports commit 14f00c6c492488381a513c3816b15794446231a0 from qemu
This commit is contained in:
Eric Blake 2018-02-21 22:19:55 -05:00 committed by Lioncash
parent b239241e99
commit 825fb4835b
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7
4 changed files with 30 additions and 30 deletions

View file

@ -68,8 +68,8 @@ def gen_event_send(name, arg_type):
''',
name=name)
ret += gen_err_check()
ret += gen_visit_fields(arg_type.members, need_cast=True,
label='out_obj')
ret += gen_visit_members(arg_type.members, need_cast=True,
label='out_obj')
ret += mcgen('''
out_obj:
visit_end_struct(v, err ? NULL : &err);

View file

@ -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:
@ -78,16 +78,16 @@ 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).

View file

@ -15,9 +15,9 @@
from qapi import *
import re
# visit_type_FOO_fields() is always emitted; track if a forward declaration
# visit_type_FOO_members() is always emitted; track if a forward declaration
# or implementation has already been output.
struct_fields_seen = set()
object_members_seen = set()
def gen_visit_decl(name, scalar=False):
c_type = c_name(name) + ' *'
@ -29,10 +29,10 @@ void visit_type_%(c_name)s(Visitor *v, const char *name, %(c_type)sobj, Error **
c_name=c_name(name), c_type=c_type)
def gen_visit_fields_decl(typ):
if typ.name in struct_fields_seen:
def gen_visit_members_decl(typ):
if typ.name in object_members_seen:
return ''
struct_fields_seen.add(typ.name)
object_members_seen.add(typ.name)
return mcgen('''
static void visit_type_%(c_type)s_fields(Visitor *v, %(c_type)s *obj, Error **errp);
@ -40,18 +40,18 @@ static void visit_type_%(c_type)s_fields(Visitor *v, %(c_type)s *obj, Error **er
c_type=typ.c_name())
def gen_visit_struct_fields(name, base, members, variants):
def gen_visit_object_members(name, base, members, variants):
ret = ''
if base:
ret += gen_visit_fields_decl(base)
ret += gen_visit_members_decl(base)
if variants:
for var in variants.variants:
# Ugly special case for simple union TODO get rid of it
if not var.simple_union_type():
ret += gen_visit_fields_decl(var.type)
ret += gen_visit_members_decl(var.type)
struct_fields_seen.add(name)
object_members_seen.add(name)
ret += mcgen('''
static void visit_type_%(c_name)s_fields(Visitor *v, %(c_name)s *obj, Error **errp)
@ -68,7 +68,7 @@ static void visit_type_%(c_name)s_fields(Visitor *v, %(c_name)s *obj, Error **er
c_type=base.c_name())
ret += gen_err_check()
ret += gen_visit_fields(members, prefix='obj->')
ret += gen_visit_members(members, prefix='obj->')
if variants:
ret += mcgen('''
@ -107,7 +107,7 @@ static void visit_type_%(c_name)s_fields(Visitor *v, %(c_name)s *obj, Error **er
}
''')
# 'goto out' produced for base, by gen_visit_fields() for each member,
# 'goto out' produced for base, by gen_visit_members() for each member,
# and if variants were present
if base or members or variants:
ret += mcgen('''
@ -175,7 +175,7 @@ def gen_visit_alternate(name, variants):
if var.type.alternate_qtype() == 'QTYPE_QINT':
promote_int = 'false'
if isinstance(var.type, QAPISchemaObjectType):
ret += gen_visit_fields_decl(var.type)
ret += gen_visit_members_decl(var.type)
ret += mcgen('''
@ -242,10 +242,10 @@ out:
def gen_visit_object(name, base, members, variants):
ret = gen_visit_struct_fields(name, base, members, variants)
ret = gen_visit_object_members(name, base, members, variants)
# FIXME: if *obj is NULL on entry, and visit_start_struct() assigns to
# *obj, but then visit_type_FOO_fields() fails, we should clean up *obj
# *obj, but then visit_type_FOO_members() fails, we should clean up *obj
# rather than leaving it non-NULL. As currently written, the caller must
# call qapi_free_FOO() to avoid a memory leak of the partial FOO.
ret += mcgen('''

View file

@ -331,7 +331,7 @@ class QAPISchemaParser(object):
#
def find_base_fields(base):
def find_base_members(base):
base_struct_define = find_struct(base)
if not base_struct_define:
return None
@ -360,11 +360,11 @@ def discriminator_find_enum_define(expr):
if not (discriminator and base):
return None
base_fields = find_base_fields(base)
if not base_fields:
base_members = find_base_members(base)
if not base_members:
return None
discriminator_type = base_fields.get(discriminator)
discriminator_type = base_members.get(discriminator)
if not discriminator_type:
return None
@ -571,14 +571,14 @@ def check_union(expr, expr_info):
raise QAPIExprError(expr_info,
"Flat union '%s' must have a base"
% name)
base_fields = find_base_fields(base)
assert base_fields
base_members = find_base_fields(base)
assert base_members
# The value of member 'discriminator' must name a non-optional
# member of the base struct.
check_name(expr_info, "Discriminator of flat union '%s'" % name,
discriminator)
discriminator_type = base_fields.get(discriminator)
discriminator_type = base_members.get(discriminator)
if not discriminator_type:
raise QAPIExprError(expr_info,
"Discriminator '%s' is not a member of base "
@ -991,7 +991,7 @@ class QAPISchemaObjectType(QAPISchemaType):
assert self.variants.tag_member in self.members
self.variants.check_clash(schema, self.info, seen)
# Check that the members of this type do not cause duplicate JSON fields,
# Check that the members of this type do not cause duplicate JSON members,
# and update seen to track the members seen so far. Report any errors
# on behalf of info, which is not necessarily self.info
def check_clash(self, schema, info, seen):
@ -1671,8 +1671,8 @@ def gen_err_check(label='out', skiperr=False):
label=label)
def gen_visit_fields(members, prefix='', need_cast=False, skiperr=False,
label='out'):
def gen_visit_members(members, prefix='', need_cast=False, skiperr=False,
label='out'):
ret = ''
if skiperr:
errparg = 'NULL'