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.

Suggested-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <1457021813-10704-2-git-send-email-eblake@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
Eric Blake 2016-03-03 09:16:43 -07:00 committed by Markus Armbruster
parent 96a1616c85
commit 14f00c6c49
6 changed files with 33 additions and 33 deletions

View File

@ -111,7 +111,7 @@ def gen_marshal_input_visit(arg_type, dealloc=False):
v = qmp_input_get_visitor(qiv);
''')
ret += gen_visit_fields(arg_type.members, skiperr=dealloc)
ret += gen_visit_members(arg_type.members, skiperr=dealloc)
if dealloc:
ret += mcgen('''
@ -175,7 +175,7 @@ def gen_marshal(name, arg_type, ret_type):
ret += gen_marshal_input_visit(arg_type)
ret += gen_call(name, arg_type, ret_type)
# 'goto out' produced by gen_marshal_input_visit->gen_visit_fields()
# 'goto out' produced by gen_marshal_input_visit->gen_visit_members()
# for each arg_type member, and by gen_call() for ret_type
if (arg_type and arg_type.members) or ret_type:
ret += mcgen('''

View File

@ -67,8 +67,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:
if memb.optional:
@ -77,16 +77,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):
@ -30,10 +30,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);
@ -41,18 +41,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)
@ -69,7 +69,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('''
@ -108,7 +108,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('''
@ -174,7 +174,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('''
@ -235,10 +235,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

@ -326,7 +326,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
@ -355,11 +355,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
@ -567,14 +567,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_members(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 "
@ -969,7 +969,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):
@ -1647,8 +1647,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'

View File

@ -77,7 +77,7 @@
'base': 'UserDefZero',
'data': { 'string': 'str', 'enum1': 'QEnumTwo' } }
# this variant of UserDefFlatUnion defaults to a union that uses fields with
# this variant of UserDefFlatUnion defaults to a union that uses members with
# allocated types to test corner cases in the cleanup/dealloc visitor
{ 'union': 'UserDefFlatUnion2',
'base': 'UserDefUnionBase2',