qapi: Allow enums in anonymous unions
Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-id: 1408557576-14574-3-git-send-email-mreitz@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
7b17ce60cc
commit
e775ba7721
|
@ -177,6 +177,8 @@ const int %(name)s_qtypes[QTYPE_MAX] = {
|
||||||
qtype = "QTYPE_QDICT"
|
qtype = "QTYPE_QDICT"
|
||||||
elif find_union(qapi_type):
|
elif find_union(qapi_type):
|
||||||
qtype = "QTYPE_QDICT"
|
qtype = "QTYPE_QDICT"
|
||||||
|
elif find_enum(qapi_type):
|
||||||
|
qtype = "QTYPE_QSTRING"
|
||||||
else:
|
else:
|
||||||
assert False, "Invalid anonymous union member"
|
assert False, "Invalid anonymous union member"
|
||||||
|
|
||||||
|
|
|
@ -263,7 +263,8 @@ void visit_type_%(name)s(Visitor *m, %(name)s **obj, const char *name, Error **e
|
||||||
for key in members:
|
for key in members:
|
||||||
assert (members[key] in builtin_types
|
assert (members[key] in builtin_types
|
||||||
or find_struct(members[key])
|
or find_struct(members[key])
|
||||||
or find_union(members[key])), "Invalid anonymous union member"
|
or find_union(members[key])
|
||||||
|
or find_enum(members[key])), "Invalid anonymous union member"
|
||||||
|
|
||||||
enum_full_value = generate_enum_full_value(disc_type, key)
|
enum_full_value = generate_enum_full_value(disc_type, key)
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
|
|
Loading…
Reference in a new issue