diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2015-11-10 09:39:24 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2015-11-10 09:39:24 +0000 |
commit | a8b4f9585a0bf5186fca793ce2c5d754cd8ec49a (patch) | |
tree | d9e1c80de4fdeb4d89b4e22743c0be83d486eb5a /scripts | |
parent | ce278618b088afd10b91a05311eaeb6401bb5004 (diff) | |
parent | f5455044201747fd72531f5e8c1b1e9c56573d9c (diff) | |
download | qemu-a8b4f9585a0bf5186fca793ce2c5d754cd8ec49a.zip qemu-a8b4f9585a0bf5186fca793ce2c5d754cd8ec49a.tar.gz qemu-a8b4f9585a0bf5186fca793ce2c5d754cd8ec49a.tar.bz2 |
Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2015-11-10' into staging
QAPI patches
# gpg: Signature made Tue 10 Nov 2015 07:12:25 GMT using RSA key ID EB918653
# gpg: Good signature from "Markus Armbruster <armbru@redhat.com>"
# gpg: aka "Markus Armbruster <armbru@pond.sub.org>"
* remotes/armbru/tags/pull-qapi-2015-11-10:
qapi-introspect: Document lack of sorting
qapi: Provide nicer array names in introspection
qapi: More tests of input arrays
qapi: Test failure in middle of array parse
qapi: More tests of alternate output
qapi: Simplify error cleanup in test-qmp-*
qapi: Simplify non-error testing in test-qmp-*
qapi: Plug leaks in test-qmp-*
qapi: Share test_init code in test-qmp-input*
qobject: Protect against use-after-free in qobject_decref()
qapi: Strengthen test of TestStructList
qapi: Use generated TestStruct machinery in tests
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/qapi-introspect.py | 8 | ||||
-rw-r--r-- | scripts/qapi-visit.py | 4 |
2 files changed, 9 insertions, 3 deletions
diff --git a/scripts/qapi-introspect.py b/scripts/qapi-introspect.py index c0dad66..64f2cd0 100644 --- a/scripts/qapi-introspect.py +++ b/scripts/qapi-introspect.py @@ -107,10 +107,12 @@ const char %(c_name)s[] = %(c_string)s; # characters. if isinstance(typ, QAPISchemaBuiltinType): return typ.name + if isinstance(typ, QAPISchemaArrayType): + return '[' + self._use_type(typ.element_type) + ']' return self._name(typ.name) def _gen_json(self, name, mtype, obj): - if mtype != 'command' and mtype != 'event' and mtype != 'builtin': + if mtype not in ('command', 'event', 'builtin', 'array'): name = self._name(name) obj['name'] = name obj['meta-type'] = mtype @@ -136,8 +138,8 @@ const char %(c_name)s[] = %(c_string)s; self._gen_json(name, 'enum', {'values': values}) def visit_array_type(self, name, info, element_type): - self._gen_json(name, 'array', - {'element-type': self._use_type(element_type)}) + element = self._use_type(element_type) + self._gen_json('[' + element + ']', 'array', {'element-type': element}) def visit_object_type_flat(self, name, info, members, variants): obj = {'members': [self._gen_member(m) for m in members]} diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py index f40c3c7..3ef5c16 100644 --- a/scripts/qapi-visit.py +++ b/scripts/qapi-visit.py @@ -138,6 +138,10 @@ void visit_type_%(c_name)s(Visitor *v, %(c_name)s **obj, const char *name, Error def gen_visit_list(name, element_type): + # FIXME: if *obj is NULL on entry, and the first visit_next_list() + # assigns to *obj, while a later one fails, we should clean up *obj + # rather than leaving it non-NULL. As currently written, the caller must + # call qapi_free_FOOList() to avoid a memory leak of the partial FOOList. return mcgen(''' void visit_type_%(c_name)s(Visitor *v, %(c_name)s **obj, const char *name, Error **errp) |