From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58592) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XKAAp-0005Sa-Gn for qemu-devel@nongnu.org; Wed, 20 Aug 2014 13:59:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XKAAk-0007hB-76 for qemu-devel@nongnu.org; Wed, 20 Aug 2014 13:59:51 -0400 Received: from mx1.redhat.com ([209.132.183.28]:23312) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XKAAk-0007h1-0M for qemu-devel@nongnu.org; Wed, 20 Aug 2014 13:59:46 -0400 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s7KHxjkf006355 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 20 Aug 2014 13:59:45 -0400 From: Max Reitz Date: Wed, 20 Aug 2014 19:59:34 +0200 Message-Id: <1408557576-14574-3-git-send-email-mreitz@redhat.com> In-Reply-To: <1408557576-14574-1-git-send-email-mreitz@redhat.com> References: <1408557576-14574-1-git-send-email-mreitz@redhat.com> Subject: [Qemu-devel] [PATCH 2/4] qapi: Allow enums in anonymous unions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , Stefan Hajnoczi , Max Reitz Signed-off-by: Max Reitz --- scripts/qapi-types.py | 2 ++ scripts/qapi-visit.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/qapi-types.py b/scripts/qapi-types.py index b463232..d2f815b 100644 --- a/scripts/qapi-types.py +++ b/scripts/qapi-types.py @@ -177,6 +177,8 @@ const int %(name)s_qtypes[QTYPE_MAX] = { qtype = "QTYPE_QDICT" elif find_union(qapi_type): qtype = "QTYPE_QDICT" + elif find_enum(qapi_type): + qtype = "QTYPE_QSTRING" else: assert False, "Invalid anonymous union member" diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py index c129697..df9f7fb 100644 --- a/scripts/qapi-visit.py +++ b/scripts/qapi-visit.py @@ -263,7 +263,8 @@ void visit_type_%(name)s(Visitor *m, %(name)s **obj, const char *name, Error **e for key in members: assert (members[key] in builtin_types 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) ret += mcgen(''' -- 2.0.4