qapi: Fix errors for non-string, non-dictionary members

Backports commit c6b71e5ae73802057d700e2419b80aef1651f213 from qemu
This commit is contained in:
Markus Armbruster 2018-02-19 16:30:47 -05:00 committed by Lioncash
parent 16619a738e
commit 630b56b4a2
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7

View file

@ -462,13 +462,14 @@ def check_type(expr_info, source, value, allow_array = False,
% (source, all_names[value], orig_value))
return
# value is a dictionary, check that each member is okay
if not isinstance(value, OrderedDict):
raise QAPIExprError(expr_info,
"%s should be a dictionary" % source)
if not allow_dict:
raise QAPIExprError(expr_info,
"%s should be a type name" % source)
if not isinstance(value, OrderedDict):
raise QAPIExprError(expr_info,
"%s should be a dictionary or type name" % source)
# value is a dictionary, check that each member is okay
for (key, arg) in value.items():
check_name(expr_info, "Member of %s" % source, key,
allow_optional=allow_optional)