qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH RFC v2 37/47] qapi: De-duplicate parameter list gene


From: Markus Armbruster
Subject: [Qemu-devel] [PATCH RFC v2 37/47] qapi: De-duplicate parameter list generation
Date: Wed, 1 Jul 2015 22:22:25 +0200

Generated qapi-event.[ch] lose line breaks.  No change otherwise.

Signed-off-by: Markus Armbruster <address@hidden>
---
 scripts/qapi-commands.py | 11 ++---------
 scripts/qapi-event.py    | 18 +++---------------
 scripts/qapi.py          | 16 ++++++++++++++++
 3 files changed, 21 insertions(+), 24 deletions(-)

diff --git a/scripts/qapi-commands.py b/scripts/qapi-commands.py
index d57f8d4..2dae425 100644
--- a/scripts/qapi-commands.py
+++ b/scripts/qapi-commands.py
@@ -16,19 +16,12 @@ from qapi import *
 import re
 
 def gen_command_decl(name, args, rets):
-    argstr = ''
-    if args:
-        for memb in args.members:
-            if memb.optional:
-                argstr += 'bool has_%s, ' % c_name(memb.name)
-            argstr += '%s %s, ' % (memb.type.c_type(is_param=True),
-                                   c_name(memb.name))
     return mcgen('''
-%(c_type)s qmp_%(c_name)s(%(args)sError **errp);
+%(c_type)s qmp_%(c_name)s(%(params)s);
 ''',
                  c_type=(rets and rets.c_type()) or 'void',
                  c_name=c_name(name),
-                 args=argstr)
+                 params=gen_params(args, 'Error **errp'))
 
 def gen_err_check(err):
     if not err:
diff --git a/scripts/qapi-event.py b/scripts/qapi-event.py
index 03bb1ec..184a81f 100644
--- a/scripts/qapi-event.py
+++ b/scripts/qapi-event.py
@@ -14,21 +14,9 @@
 from qapi import *
 
 def gen_event_send_proto(name, data):
-    api_name = "void qapi_event_send_%s(" % c_name(name).lower()
-    l = len(api_name)
-
-    if data:
-        for m in data.members:
-            if m.optional:
-                api_name += "bool has_%s,\n" % c_name(m.name)
-                api_name += "".ljust(l)
-
-            api_name += "%s %s,\n" % (m.type.c_type(is_param=True),
-                                      c_name(m.name))
-            api_name += "".ljust(l)
-
-    api_name += "Error **errp)"
-    return api_name
+    return 'void qapi_event_send_%(c_name)s(%(param)s)' % {
+        'c_name': c_name(name.lower()),
+        'param': gen_params(data, 'Error **errp')}
 
 def gen_event_send_decl(name, data):
     return mcgen('''
diff --git a/scripts/qapi.py b/scripts/qapi.py
index 4d47214..c6a5ddc 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -1384,6 +1384,22 @@ extern const char *const %(c_name)s_lookup[];
                  c_name=c_name(name))
     return ret
 
+def gen_params(args, extra):
+    if not args:
+        return extra
+    assert not args.variants
+    ret = ""
+    sep = ""
+    for memb in args.members:
+        ret += sep
+        sep = ", "
+        if memb.optional:
+            ret += "bool has_%s, " % c_name(memb.name)
+        ret += "%s %s" % (memb.type.c_type(is_param=True), c_name(memb.name))
+    if extra:
+        ret += sep + extra
+    return ret
+
 #
 # Common command line parsing
 #
-- 
1.9.3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]