qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH RFC 03/14] qapi/introspect: Simplify WIP


From: Markus Armbruster
Subject: [Qemu-devel] [PATCH RFC 03/14] qapi/introspect: Simplify WIP
Date: Mon, 12 Feb 2018 08:21:56 +0100

---
 scripts/qapi/introspect.py | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/scripts/qapi/introspect.py b/scripts/qapi/introspect.py
index f66c397fb0..6c86673a09 100644
--- a/scripts/qapi/introspect.py
+++ b/scripts/qapi/introspect.py
@@ -51,36 +51,32 @@ class 
QAPISchemaGenIntrospectVisitor(QAPISchemaMonolithicCVisitor):
         self._jsons = []
         self._used_types = []
         self._name_map = {}
+        var = c_name(self._prefix, protect=False) + 'qmp_schema_json'
         self._genc.add(mcgen('''
 #include "qemu/osdep.h"
 #include "%(prefix)sqapi-introspect.h"
 
+const char %(var)s[] = ''',
+                             var=var, prefix=prefix))
+        self._genh.add(mcgen('''
+extern const char %(var)s[];
 ''',
-                             prefix=prefix))
+                             var=var))
 
     def visit_begin(self, schema):
         self._schema = schema
 
     def visit_end(self):
         # visit the types that are actually used
-        jsons = self._jsons
-        self._jsons = []
         for typ in self._used_types:
             typ.visit(self)
         # generate C
         # TODO can generate awfully long lines
-        jsons.extend(self._jsons)
-        name = c_name(self._prefix, protect=False) + 'qmp_schema_json'
-        self._genh.add(mcgen('''
-extern const char %(c_name)s[];
-''',
-                             c_name=c_name(name)))
-        lines = to_json(jsons).split('\n')
+        lines = to_json(self._jsons).split('\n')
         c_string = '\n    '.join([to_c_string(line) for line in lines])
         self._genc.add(mcgen('''
-const char %(c_name)s[] = %(c_string)s;
+%(c_string)s;
 ''',
-                             c_name=c_name(name),
                              c_string=c_string))
         self._schema = None
         self._jsons = []
-- 
2.13.6




reply via email to

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