提交 768562de 编写于 作者: M Markus Armbruster

qapi: union_types is a list used like a dict, make it one

Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
Reviewed-by: NEric Blake <eblake@redhat.com>
Message-Id: <1489582656-31133-45-git-send-email-armbru@redhat.com>
上级 ed285bf8
......@@ -48,7 +48,7 @@ name_case_whitelist = []
enum_types = {}
struct_types = {}
union_types = []
union_types = {}
all_names = {}
#
......@@ -569,7 +569,7 @@ def find_alternate_member_qtype(qapi_type):
return 'QTYPE_QDICT'
elif qapi_type in enum_types:
return 'QTYPE_QSTRING'
elif find_union(qapi_type):
elif qapi_type in union_types:
return 'QTYPE_QDICT'
return None
......@@ -638,19 +638,6 @@ def add_name(name, info, meta, implicit=False):
all_names[name] = meta
def add_union(definition, info):
global union_types
union_types.append(definition)
def find_union(name):
global union_types
for union in union_types:
if union['union'] == name:
return union
return None
def check_type(info, source, value, allow_array=False,
allow_dict=False, allow_optional=False,
allow_metas=[]):
......@@ -908,7 +895,7 @@ def check_exprs(exprs):
meta = 'union'
check_keys(expr_elem, 'union', ['data'],
['base', 'discriminator'])
add_union(expr, info)
union_types[expr[meta]] = expr
elif 'alternate' in expr:
meta = 'alternate'
check_keys(expr_elem, 'alternate', ['data'])
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册