This is a subset of my earlier post "Rip out dynamic JSON parsing"[1], and then a rebase of that work onto master. It is available here:
git fetch git://repo.or.cz/qemu/ericb.git qapi-dynamic-json-v5 the tag name is a bit of a misnomer for the current series, but is historically accurate. Since v4 [2], I've addressed the minor review comments: - drop unneeded '.' in comments [Markus] - merge 3 patches into one, since the artifical split between patches was not nice, and since it's all automated anyway [Markus] - rebase to master (Coccinelle found more places that could be improved) - add R-b tags This will probably be a conflict magnet the longer it is not applied (conversely, since it is now generated by Coccinelle, it will be a lot easier to regenerate the series if another round of rebasing is needed). [1] https://lists.gnu.org/archive/html/qemu-devel/2016-11/msg05425.html [2] https://lists.gnu.org/archive/html/qemu-devel/2017-04/msg01970.html 001/10:[----] [--] 'pci: Use struct instead of QDict to pass back parameters' 002/10:[----] [--] 'pci: Reduce scope of error injection' 003/10:[----] [--] 'coccinelle: Add script to remove useless QObject casts' 004/10:[----] [--] 'qobject: Drop useless QObject casts' 005/10:[0004] [FC] 'qobject: Add helper macros for common scalar insertions' 006/10:[0380] [FC] 'qobject: Use simpler QDict/QList scalar insertion macros' 007/10:[----] [--] 'block: Simplify bdrv_append_temp_snapshot() logic' 008/10:[----] [--] 'QemuOpts: Simplify qemu_opts_to_qdict()' 009/10:[----] [--] 'fdc-test: Avoid deprecated 'change' command' 010/10:[----] [--] 'test-qga: Actually test 0xff sync bytes' Eric Blake (10): pci: Use struct instead of QDict to pass back parameters pci: Reduce scope of error injection coccinelle: Add script to remove useless QObject casts qobject: Drop useless QObject casts qobject: Add helper macros for common scalar insertions qobject: Use simpler QDict/QList scalar insertion macros block: Simplify bdrv_append_temp_snapshot() logic QemuOpts: Simplify qemu_opts_to_qdict() fdc-test: Avoid deprecated 'change' command test-qga: Actually test 0xff sync bytes include/hw/pci/pcie_aer.h | 4 - include/qapi/qmp/qdict.h | 8 ++ include/qapi/qmp/qlist.h | 8 ++ block.c | 70 +++++++----------- block/blkdebug.c | 8 +- block/blkverify.c | 11 ++- block/curl.c | 2 +- block/file-posix.c | 8 +- block/file-win32.c | 4 +- block/nbd.c | 41 +++++------ block/nfs.c | 43 +++++------ block/null.c | 2 +- block/qcow2.c | 4 +- block/quorum.c | 16 ++-- block/rbd.c | 16 ++-- block/snapshot.c | 2 +- block/ssh.c | 16 ++-- block/vvfat.c | 10 +-- block/vxhs.c | 6 +- blockdev.c | 30 ++++---- hw/block/xen_disk.c | 2 +- hw/pci/pcie_aer.c | 48 +++++++----- hw/usb/xen-usb.c | 12 +-- monitor.c | 23 +++--- qapi/qmp-event.c | 2 +- qemu-img.c | 6 +- qemu-io.c | 2 +- qemu-nbd.c | 2 +- qobject/qdict.c | 2 +- target/s390x/cpu_models.c | 4 +- tests/check-qdict.c | 142 ++++++++++++++++++------------------ tests/check-qlist.c | 4 +- tests/device-introspect-test.c | 4 +- tests/fdc-test.c | 8 +- tests/libqtest.c | 8 ++ tests/test-qemu-opts.c | 4 +- tests/test-qga.c | 34 +++++++-- tests/test-qmp-commands.c | 30 ++++---- tests/test-qmp-event.c | 30 ++++---- tests/test-qobject-output-visitor.c | 6 +- util/qemu-option.c | 6 +- MAINTAINERS | 1 + scripts/coccinelle/qobject.cocci | 35 +++++++++ 43 files changed, 385 insertions(+), 339 deletions(-) create mode 100644 scripts/coccinelle/qobject.cocci -- 2.9.3