From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50818) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bB38Y-0003dP-7o for qemu-devel@nongnu.org; Thu, 09 Jun 2016 12:48:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bB38U-0001zT-8L for qemu-devel@nongnu.org; Thu, 09 Jun 2016 12:48:54 -0400 Received: from mx1.redhat.com ([209.132.183.28]:51117) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bB38T-0001zL-Vh for qemu-devel@nongnu.org; Thu, 09 Jun 2016 12:48:50 -0400 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (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 3DF6A6542C for ; Thu, 9 Jun 2016 16:48:49 +0000 (UTC) From: Eric Blake Date: Thu, 9 Jun 2016 10:48:31 -0600 Message-Id: <1465490926-28625-1-git-send-email-eblake@redhat.com> Subject: [Qemu-devel] [PATCH v5 00/15] Add clone visitor List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: armbru@redhat.com [First half of v4 00/28 Add qapi-to-JSON and clone visitors: https://lists.gnu.org/archive/html/qemu-devel/2016-05/msg03220.html] No hard prerequisites; applies to master Soft prerequisites (for valgrind to be happy with all touched tests): My fix for memleak in range.h (still waiting for other reviewers to chime in on what semantics we want documented in range.h): https://lists.gnu.org/archive/html/qemu-devel/2016-05/msg02666.html My fix for memleak in json-streamer.c, in Markus' qapi-next branch: https://lists.gnu.org/archive/html/qemu-devel/2016-05/msg03186.html Also available as a tag at: git fetch git://repo.or.cz/qemu/ericb.git qapi-jsonv5 [yes, it's a misnomer now that I split the series in two, but matches the v4 tag name] Differences since v4: - drop old patch 1, all includes of a qjson.h now have a directory prefix making it obvious which include is intended - split patch 11/28 - rebase remaining patches - various comment improvements, based on Markus' review - fix clone visitor crash - tweak clone visitor handling of NULL where "" was intended 001/15:[0015] [FC] 'qapi: Improve use of qmp/types.h' 002/15:[----] [--] 'qemu-img: Don't leak errors when outputting JSON' 003/15:[0038] [FC] 'qapi: Add parameter to visit_end_*' 004/15:[0013] [FC] 'qapi: Add new visit_free() function' 005/15:[----] [-C] 'opts-visitor: Favor new visit_free() function' 006/15:[0009] [FC] 'string-input-visitor: Favor new visit_free() function' 007/15:[0015] [FC] 'qmp-input-visitor: Favor new visit_free() function' 008/15:[0001] [FC] 'string-output-visitor: Favor new visit_free() function' 009/15:[0001] [FC] 'qmp-output-visitor: Favor new visit_free() function' 010/15:[down] 'tests: Clean up test-string-output-visitor' 011/15:[0063] [FC] 'tests: Factor out common code in qapi output tests' 012/15:[0049] [FC] 'qapi: Add new visit_complete() function' 013/15:[0094] [FC] 'qapi: Add new clone visitor' 014/15:[----] [--] 'sockets: Use new QAPI cloning' 015/15:[----] [--] 'replay: Use new QAPI cloning' Eric Blake (15): qapi: Improve use of qmp/types.h qemu-img: Don't leak errors when outputting JSON qapi: Add parameter to visit_end_* qapi: Add new visit_free() function opts-visitor: Favor new visit_free() function string-input-visitor: Favor new visit_free() function qmp-input-visitor: Favor new visit_free() function string-output-visitor: Favor new visit_free() function qmp-output-visitor: Favor new visit_free() function tests: Clean up test-string-output-visitor tests: Factor out common code in qapi output tests qapi: Add new visit_complete() function qapi: Add new clone visitor sockets: Use new QAPI cloning replay: Use new QAPI cloning include/qapi/visitor.h | 161 ++++++++++++++++++--------- include/qapi/visitor-impl.h | 26 +++-- scripts/qapi-commands.py | 33 ++---- scripts/qapi-event.py | 12 +- scripts/qapi-types.py | 6 +- scripts/qapi-visit.py | 8 +- include/io/task.h | 2 +- include/qapi/clone-visitor.h | 39 +++++++ include/qapi/dealloc-visitor.h | 5 +- include/qapi/opts-visitor.h | 4 +- include/qapi/qmp-input-visitor.h | 6 +- include/qapi/qmp-output-visitor.h | 12 +- include/qapi/qmp/types.h | 1 - include/qapi/string-input-visitor.h | 5 +- include/qapi/string-output-visitor.h | 14 ++- include/qemu/sockets.h | 4 - qapi/qapi-visit-core.c | 55 +++++++--- block/crypto.c | 30 +++-- block/qapi.c | 9 +- blockdev.c | 9 +- hmp.c | 19 ++-- hw/acpi/core.c | 8 +- hw/pci/pcie_aer.c | 1 + hw/ppc/spapr_drc.c | 4 +- hw/virtio/virtio-balloon.c | 4 +- io/channel-socket.c | 9 +- monitor.c | 6 +- net/net.c | 16 ++- numa.c | 6 +- qapi/opts-visitor.c | 38 +++---- qapi/qapi-clone-visitor.c | 182 +++++++++++++++++++++++++++++++ qapi/qapi-dealloc-visitor.c | 61 ++--------- qapi/qmp-dispatch.c | 1 + qapi/qmp-input-visitor.c | 27 ++--- qapi/qmp-output-visitor.c | 56 ++++++---- qapi/string-input-visitor.c | 25 +++-- qapi/string-output-visitor.c | 32 ++++-- qemu-char.c | 5 +- qemu-img.c | 32 +++--- qmp.c | 9 +- qobject/json-parser.c | 7 +- qobject/qjson.c | 6 +- qobject/qobject.c | 7 +- qom/object.c | 58 +++++----- qom/object_interfaces.c | 12 +- qom/qom-qobject.c | 19 ++-- replay/replay-input.c | 34 +----- tests/check-qjson.c | 8 +- tests/check-qnull.c | 17 ++- tests/test-clone-visitor.c | 206 +++++++++++++++++++++++++++++++++++ tests/test-opts-visitor.c | 9 +- tests/test-qmp-commands.c | 8 +- tests/test-qmp-input-strict.c | 13 +-- tests/test-qmp-input-visitor.c | 15 +-- tests/test-qmp-output-visitor.c | 92 ++++++---------- tests/test-string-input-visitor.c | 22 ++-- tests/test-string-output-visitor.c | 99 ++++++++--------- tests/test-visitor-serialization.c | 41 +++---- util/qemu-sockets.c | 27 ----- docs/qapi-code-gen.txt | 49 +++------ qapi/Makefile.objs | 2 +- tests/.gitignore | 1 + tests/Makefile.include | 4 + 63 files changed, 1025 insertions(+), 713 deletions(-) create mode 100644 include/qapi/clone-visitor.h create mode 100644 qapi/qapi-clone-visitor.c create mode 100644 tests/test-clone-visitor.c -- 2.5.5