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-v4
the tag name is a bit of a misnomer for the current series, but is
historically accurate.
Since v3 [2], I've addressed the minor review comments:
- add Reviewed-by as appropriate
- patch 6: comment improvements
- patch 7: rebase to master (aka rerun Coccinelle)
- patch 10: fix -O2 compilation
- patch 12: avoid deprecated 'device' too
This is 2.10 material, and 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/msg00760.html
001/13:[----] [--] 'pci: Use struct instead of QDict to pass back parameters'
002/13:[----] [--] 'pci: Reduce scope of error injection'
003/13:[----] [--] 's390x: Drop useless casts'
004/13:[----] [--] 'coccinelle: Add script to remove useless QObject casts'
005/13:[----] [--] 'qobject: Drop useless QObject casts'
006/13:[0004] [FC] 'qobject: Add helper macros for common scalar insertions'
007/13:[0004] [FC] 'block: Use simpler QDict/QList scalar insertion macros'
008/13:[----] [--] 'tests: Use simpler QDict/QList scalar insertion macros'
009/13:[----] [--] 'qobject: Use simpler QDict/QList scalar insertion macros'
010/13:[0012] [FC] 'block: Simplify bdrv_append_temp_snapshot() logic'
011/13:[----] [--] 'QemuOpts: Simplify qemu_opts_to_qdict()'
012/13:[0007] [FC] 'fdc-test: Avoid deprecated 'change' command'
013/13:[----] [--] 'test-qga: Actually test 0xff sync bytes'
Eric Blake (13):
pci: Use struct instead of QDict to pass back parameters
pci: Reduce scope of error injection
s390x: Drop useless casts
coccinelle: Add script to remove useless QObject casts
qobject: Drop useless QObject casts
qobject: Add helper macros for common scalar insertions
block: Use simpler QDict/QList scalar insertion macros
tests: Use simpler QDict/QList scalar insertion macros
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 +--
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 +++++++++
42 files changed, 382 insertions(+), 336 deletions(-)
create mode 100644 scripts/coccinelle/qobject.cocci
--
2.9.3