From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39825) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1acLyW-0008Pt-SX for qemu-devel@nongnu.org; Sat, 05 Mar 2016 18:51:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1acLyT-0005kY-JE for qemu-devel@nongnu.org; Sat, 05 Mar 2016 18:51:08 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34978) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1acLyT-0005kM-Be for qemu-devel@nongnu.org; Sat, 05 Mar 2016 18:51:05 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id B2D0E64D14 for ; Sat, 5 Mar 2016 23:51:03 +0000 (UTC) From: Eric Blake Date: Sat, 5 Mar 2016 16:50:43 -0700 Message-Id: <1457221861-18067-1-git-send-email-eblake@redhat.com> Subject: [Qemu-devel] [PATCH v13 00/18] qapi visitor cleanups (post-introspection cleanups subset E) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: armbru@redhat.com Requires these patches first ("v4 implicit types"): https://lists.gnu.org/archive/html/qemu-devel/2016-03/msg01205.html which in turn requires Markus' qapi-next branch: https://lists.gnu.org/archive/html/qemu-devel/2016-03/msg01182.html v13: Minor rebase improvements v12: https://lists.gnu.org/archive/html/qemu-devel/2016-03/msg00002.html This series (finally) finishes the review comments against the tail end of my v9 subset E series: https://lists.gnu.org/archive/html/qemu-devel/2016-01/msg03504.html v10 and v11 of the series dealt with the first half, and are now mostly applied (or part of the pre-requisite series). Also available as a tag at this location: git fetch git://repo.or.cz/qemu/ericb.git qapi-cleanupv13e and will soon be part of my branch with the rest of the v5 series, at: http://repo.or.cz/qemu/ericb.git/shortlog/refs/heads/qapi 001/18:[----] [--] 'qapi-visit: Add visitor.type classification' 002/18:[----] [--] 'qapi: Guarantee NULL obj on input visitor callback error' 003/18:[----] [--] 'qmp: Drop dead command->type' 004/18:[----] [--] 'qmp-input: Clean up stack handling' 005/18:[----] [--] 'qmp-input: Don't consume input when checking has_member' 006/18:[----] [--] 'qmp-input: Refactor when list is advanced' 007/18:[0011] [FC] 'qapi: Document visitor interfaces, add assertions' 008/18:[----] [--] 'tests: Add check-qnull' 009/18:[----] [--] 'qapi: Add visit_type_null() visitor' 010/18:[----] [--] 'qmp: Support explicit null during visits' 011/18:[----] [--] 'spapr_drc: Expose 'null' in qom-get when there is no fdt' 012/18:[----] [--] 'qmp: Tighten output visitor rules' 013/18:[0011] [FC] 'qapi: Split visit_end_struct() into pieces' 014/18:[0016] [FC] 'qapi-commands: Wrap argument visit in visit_start_struct' 015/18:[----] [--] 'qom: Wrap prop visit in visit_start_struct' 016/18:[----] [--] 'qmp-input: Require struct push to visit members of top dict' 017/18:[0017] [FC] 'qapi: Simplify semantics of visit_next_list()' 018/18:[0002] [FC] 'qapi: Change visit_type_FOO() to no longer return partial objects' Eric Blake (18): qapi-visit: Add visitor.type classification qapi: Guarantee NULL obj on input visitor callback error qmp: Drop dead command->type qmp-input: Clean up stack handling qmp-input: Don't consume input when checking has_member qmp-input: Refactor when list is advanced qapi: Document visitor interfaces, add assertions tests: Add check-qnull qapi: Add visit_type_null() visitor qmp: Support explicit null during visits spapr_drc: Expose 'null' in qom-get when there is no fdt qmp: Tighten output visitor rules qapi: Split visit_end_struct() into pieces qapi-commands: Wrap argument visit in visit_start_struct qom: Wrap prop visit in visit_start_struct qmp-input: Require struct push to visit members of top dict qapi: Simplify semantics of visit_next_list() qapi: Change visit_type_FOO() to no longer return partial objects include/qapi/visitor.h | 485 +++++++++++++++++++++++++++++++++-- include/qapi/visitor-impl.h | 80 ++++-- scripts/qapi-commands.py | 10 + scripts/qapi-event.py | 5 +- scripts/qapi-visit.py | 56 ++-- include/qapi/dealloc-visitor.h | 4 + include/qapi/opts-visitor.h | 4 + include/qapi/qmp-output-visitor.h | 1 + include/qapi/qmp/dispatch.h | 6 - include/qapi/string-input-visitor.h | 5 + include/qapi/string-output-visitor.h | 5 + qapi/qapi-visit-core.c | 112 ++++++-- hw/ppc/spapr_drc.c | 11 +- hw/virtio/virtio-balloon.c | 15 +- qapi/opts-visitor.c | 65 ++--- qapi/qapi-dealloc-visitor.c | 43 +--- qapi/qmp-dispatch.c | 18 +- qapi/qmp-input-visitor.c | 168 +++++++----- qapi/qmp-output-visitor.c | 72 +++--- qapi/qmp-registry.c | 1 - qapi/string-input-visitor.c | 39 +-- qapi/string-output-visitor.c | 43 ++-- qom/object.c | 5 +- qom/object_interfaces.c | 29 ++- tests/check-qnull.c | 68 +++++ tests/test-qmp-commands.c | 13 +- tests/test-qmp-input-strict.c | 19 +- tests/test-qmp-input-visitor.c | 27 +- tests/test-qmp-output-visitor.c | 17 +- docs/qapi-code-gen.txt | 33 ++- tests/.gitignore | 1 + tests/Makefile | 6 +- 32 files changed, 1077 insertions(+), 389 deletions(-) create mode 100644 tests/check-qnull.c -- 2.5.0