diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2016-05-12 15:06:38 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2016-05-12 15:06:38 +0100 |
commit | 6ddeeffffecf1f78acf6c93cbf267a8abe755836 (patch) | |
tree | a3cba08b27f87adb9c0ed2badaa9945856c39144 /scripts/qapi-commands.py | |
parent | f83b70f701923964aaf89e1203ddcef0dd48ed08 (diff) | |
parent | 68ab47e4b4ecc1c4649362b8cc1e49794d1a6537 (diff) | |
download | qemu-6ddeeffffecf1f78acf6c93cbf267a8abe755836.zip qemu-6ddeeffffecf1f78acf6c93cbf267a8abe755836.tar.gz qemu-6ddeeffffecf1f78acf6c93cbf267a8abe755836.tar.bz2 |
Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2016-05-12' into staging
QAPI patches for 2016-05-12
# gpg: Signature made Thu 12 May 2016 08:49:04 BST 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-2016-05-12: (23 commits)
qapi: Change visit_type_FOO() to no longer return partial objects
qapi: Simplify semantics of visit_next_list()
qapi: Fix string input visitor handling of invalid list
tests/string-input-visitor: Add negative integer tests
qapi: Split visit_end_struct() into pieces
qmp: Tighten output visitor rules
qmp: Don't reuse qmp visitor after grabbing output
spapr_drc: Expose 'null' in qom-get when there is no fdt
qmp: Support explicit null during visits
qapi: Add visit_type_null() visitor
tests: Add check-qnull
qapi: Document visitor interfaces, add assertions
qmp-input: Refactor when list is advanced
qmp-input: Require struct push to visit members of top dict
qom: Wrap prop visit in visit_start_struct
qapi-commands: Wrap argument visit in visit_start_struct
qmp-input: Don't consume input when checking has_member
qapi: Use strict QMP input visitor in more places
qapi: Consolidate QMP input visitor creation
qmp-input: Clean up stack handling
...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'scripts/qapi-commands.py')
-rw-r--r-- | scripts/qapi-commands.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/scripts/qapi-commands.py b/scripts/qapi-commands.py index b570069..8c6acb3 100644 --- a/scripts/qapi-commands.py +++ b/scripts/qapi-commands.py @@ -115,13 +115,21 @@ def gen_marshal(name, arg_type, ret_type): if arg_type and arg_type.members: ret += mcgen(''' - QmpInputVisitor *qiv = qmp_input_visitor_new_strict(QOBJECT(args)); + QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true); QapiDeallocVisitor *qdv; Visitor *v; %(c_name)s arg = {0}; v = qmp_input_get_visitor(qiv); + visit_start_struct(v, NULL, NULL, 0, &err); + if (err) { + goto out; + } visit_type_%(c_name)s_members(v, &arg, &err); + if (!err) { + visit_check_struct(v, &err); + } + visit_end_struct(v); if (err) { goto out; } @@ -150,7 +158,9 @@ out: qmp_input_visitor_cleanup(qiv); qdv = qapi_dealloc_visitor_new(); v = qapi_dealloc_get_visitor(qdv); + visit_start_struct(v, NULL, NULL, 0, NULL); visit_type_%(c_name)s_members(v, &arg, NULL); + visit_end_struct(v); qapi_dealloc_visitor_cleanup(qdv); ''', c_name=arg_type.c_name()) |