Skip to content

Commit

Permalink
qapi: union_types is a list used like a dict, make it one
Browse files Browse the repository at this point in the history
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <1489582656-31133-45-git-send-email-armbru@redhat.com>
  • Loading branch information
Markus Armbruster committed Mar 16, 2017
1 parent ed285bf commit 768562d
Showing 1 changed file with 3 additions and 16 deletions.
19 changes: 3 additions & 16 deletions scripts/qapi.py
Expand Up @@ -48,7 +48,7 @@

enum_types = {}
struct_types = {}
union_types = []
union_types = {}
all_names = {}

#
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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=[]):
Expand Down Expand Up @@ -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'])
Expand Down

0 comments on commit 768562d

Please sign in to comment.