From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54923) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1avtkg-0007i4-DB for qemu-devel@nongnu.org; Thu, 28 Apr 2016 17:45:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1avtkd-0000AM-K0 for qemu-devel@nongnu.org; Thu, 28 Apr 2016 17:45:38 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56758) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1avtkd-00009U-Dc for qemu-devel@nongnu.org; Thu, 28 Apr 2016 17:45:35 -0400 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C5AFD46D for ; Thu, 28 Apr 2016 21:45:34 +0000 (UTC) From: Eric Blake Date: Thu, 28 Apr 2016 15:45:08 -0600 Message-Id: <1461879932-9020-1-git-send-email-eblake@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v16 00/24] 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 2.7 material; much less churn this time through, but enough that it was easier for me to repost than to make Markus do the touchups his review found. Based on master, with no prerequisite patches. Also available as a tag at this location: git fetch git://repo.or.cz/qemu/ericb.git qapi-cleanupv16e 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 v15 was: https://lists.gnu.org/archive/html/qemu-devel/2016-04/msg04147.html Since then, I deferred the qmp-commands.hx patch to later (Marc-Andr=C3=A9's solution may be better), and split two others while addressing review comments. 001/24:[----] [--] 'qapi-visit: Add visitor.type classification' 002/24:[0014] [FC] 'qapi: Guarantee NULL obj on input visitor callback er= ror' 003/24:[----] [--] 'qmp: Drop dead command->type' 004/24:[----] [--] 'qmp-input: Clean up stack handling' 005/24:[down] 'qapi: Consolidate QMP input visitor creation' 006/24:[0042] [FC] 'qapi: Use strict QMP input visitor in more places' 007/24:[----] [--] 'qmp-input: Don't consume input when checking has_memb= er' 008/24:[----] [--] 'qapi-commands: Wrap argument visit in visit_start_str= uct' 009/24:[0025] [FC] 'qom: Wrap prop visit in visit_start_struct' 010/24:[0002] [FC] 'qmp-input: Require struct push to visit members of to= p dict' 011/24:[0004] [FC] 'qmp-input: Refactor when list is advanced' 012/24:[0021] [FC] 'qapi: Document visitor interfaces, add assertions' 013/24:[----] [--] 'tests: Add check-qnull' 014/24:[0005] [FC] 'qapi: Add visit_type_null() visitor' 015/24:[0014] [FC] 'qmp: Support explicit null during visits' 016/24:[----] [--] 'spapr_drc: Expose 'null' in qom-get when there is no = fdt' 017/24:[----] [--] 'qmp: Add qmp_output_visitor_reset()' 018/24:[----] [--] 'qmp: Tighten output visitor rules' 019/24:[0010] [FC] 'qapi: Split visit_end_struct() into pieces' 020/24:[down] 'qapi: Don't pass NULL to printf in string input visitor' 021/24:[----] [--] 'tests/string-input-visitor: Add negative integer test= s' 022/24:[0002] [FC] 'qapi: Fix string input visitor handling of invalid li= st' 023/24:[0010] [FC] 'qapi: Simplify semantics of visit_next_list()' 024/24:[0012] [FC] 'qapi: Change visit_type_FOO() to no longer return par= tial objects' Eric Blake (23): 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 qapi: Consolidate QMP input visitor creation qapi: Use strict QMP input visitor in more places qmp-input: Don't consume input when checking has_member 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 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: Add qmp_output_visitor_reset() qmp: Tighten output visitor rules qapi: Split visit_end_struct() into pieces qapi: Don't pass NULL to printf in string input visitor qapi: Fix string input visitor handling of invalid list qapi: Simplify semantics of visit_next_list() qapi: Change visit_type_FOO() to no longer return partial objects Markus Armbruster (1): tests/string-input-visitor: Add negative integer tests include/qapi/visitor.h | 492 +++++++++++++++++++++++++++++= ++++-- include/qapi/visitor-impl.h | 81 ++++-- scripts/qapi-commands.py | 12 +- scripts/qapi-event.py | 5 +- scripts/qapi-visit.py | 53 ++-- include/qapi/dealloc-visitor.h | 5 + include/qapi/opts-visitor.h | 5 + include/qapi/qmp-input-visitor.h | 9 +- 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 | 111 ++++++-- block/crypto.c | 14 +- hw/ppc/spapr_drc.c | 11 +- hw/virtio/virtio-balloon.c | 15 +- qapi/opts-visitor.c | 70 ++--- qapi/qapi-dealloc-visitor.c | 43 +-- qapi/qmp-dispatch.c | 18 +- qapi/qmp-input-visitor.c | 189 ++++++++------ qapi/qmp-output-visitor.c | 71 ++--- qapi/qmp-registry.c | 1 - qapi/string-input-visitor.c | 51 ++-- qapi/string-output-visitor.c | 43 ++- qmp.c | 2 +- qom/object.c | 5 +- qom/object_interfaces.c | 42 +-- qom/qom-qobject.c | 3 +- replay/replay-input.c | 2 +- tests/check-qnull.c | 75 ++++++ tests/test-qmp-commands.c | 15 +- tests/test-qmp-input-strict.c | 21 +- tests/test-qmp-input-visitor.c | 42 ++- tests/test-qmp-output-visitor.c | 29 ++- tests/test-string-input-visitor.c | 23 +- tests/test-visitor-serialization.c | 2 +- util/qemu-sockets.c | 2 +- docs/qapi-code-gen.txt | 44 +++- tests/.gitignore | 1 + tests/Makefile | 6 +- 40 files changed, 1198 insertions(+), 432 deletions(-) create mode 100644 tests/check-qnull.c --=20 2.5.5