qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PULL v2 25/25] qapi: Simplify gen_struct_field()
Date: Mon,  2 Nov 2015 10:13:30 +0100	[thread overview]
Message-ID: <1446455610-15739-26-git-send-email-armbru@redhat.com> (raw)
In-Reply-To: <1446455610-15739-1-git-send-email-armbru@redhat.com>

From: Eric Blake <eblake@redhat.com>

Rather than having all callers pass a name, type, and optional
flag, have them instead pass a QAPISchemaObjectTypeMember which
already has all that information.

No change to generated code.

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <1445898903-12082-25-git-send-email-eblake@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 scripts/qapi-types.py | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/scripts/qapi-types.py b/scripts/qapi-types.py
index 7e35bb6..b37900f 100644
--- a/scripts/qapi-types.py
+++ b/scripts/qapi-types.py
@@ -36,18 +36,18 @@ struct %(c_name)s {
                  c_name=c_name(name), c_type=element_type.c_type())
 
 
-def gen_struct_field(name, typ, optional):
+def gen_struct_field(member):
     ret = ''
 
-    if optional:
+    if member.optional:
         ret += mcgen('''
     bool has_%(c_name)s;
 ''',
-                     c_name=c_name(name))
+                     c_name=c_name(member.name))
     ret += mcgen('''
     %(c_type)s %(c_name)s;
 ''',
-                 c_type=typ.c_type(), c_name=c_name(name))
+                 c_type=member.type.c_type(), c_name=c_name(member.name))
     return ret
 
 
@@ -60,13 +60,13 @@ def gen_struct_fields(local_members, base=None):
 ''',
                      c_name=base.c_name())
         for memb in base.members:
-            ret += gen_struct_field(memb.name, memb.type, memb.optional)
+            ret += gen_struct_field(memb)
         ret += mcgen('''
     /* Own members: */
 ''')
 
     for memb in local_members:
-        ret += gen_struct_field(memb.name, memb.type, memb.optional)
+        ret += gen_struct_field(memb)
     return ret
 
 
@@ -149,9 +149,7 @@ struct %(c_name)s {
     if base:
         ret += gen_struct_fields([], base)
     else:
-        ret += gen_struct_field(variants.tag_member.name,
-                                variants.tag_member.type,
-                                False)
+        ret += gen_struct_field(variants.tag_member)
 
     # FIXME: What purpose does data serve, besides preventing a union that
     # has a branch named 'data'? We use it in qapi-visit.py to decide
-- 
2.4.3

  parent reply	other threads:[~2015-11-02  9:13 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-02  9:13 [Qemu-devel] [PULL v2 00/25] QAPI patches Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 01/25] qapi-schema: mark InetSocketAddress as mandatory again Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 02/25] tests/qapi-schema: Test for reserved names, empty struct Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 03/25] qapi: More idiomatic string operations Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 04/25] qapi: More robust conditions for when labels are needed Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 05/25] qapi: Reserve '*List' type names for list types Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 06/25] qapi: Reserve 'q_*' and 'has_*' member names Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 07/25] vnc: Hoist allocation of VncBasicInfo to callers Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 08/25] qapi-visit: Split off visit_type_FOO_fields forward decl Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 09/25] qapi-types: Refactor base fields output Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 10/25] qapi: Prefer typesafe upcasts to qapi base classes Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 11/25] qapi: Unbox base members Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 12/25] qapi-visit: Remove redundant functions for flat union base Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 13/25] qapi: Start converting to new qapi union layout Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 14/25] qapi-visit: Convert " Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 15/25] tests: " Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 16/25] block: " Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 17/25] sockets: " Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 18/25] net: " Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 19/25] char: " Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 20/25] input: " Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 21/25] memory: " Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 22/25] tpm: " Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 23/25] qapi: Finish converting " Markus Armbruster
2015-11-02  9:13 ` [Qemu-devel] [PULL v2 24/25] qapi: Reserve 'u' member name Markus Armbruster
2015-11-02  9:13 ` Markus Armbruster [this message]
2015-11-02 12:02 ` [Qemu-devel] [PULL v2 00/25] QAPI patches Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1446455610-15739-26-git-send-email-armbru@redhat.com \
    --to=armbru@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).