This is a replacement for -object QAPIfication that keeps QemuOpts in order to not break some of the CLI parsing extensions that OptsVisitor includes. Since keyval is not used, support for directly passing JSON syntax to the option must be added manually, which is what patch 3 does. However, both the QemuOpts and the JSON paths go through the new ObjectOptions interface, just with two different visitors, so we can reuse all the new type-safe code that Kevin has added.
Patch 1 is a patch that I already had lying around, which I included to be able to remove user_creatable_add_opts completely in patch 2. Paolo Based-on: <20210311144811.313451-1-kw...@redhat.com> Paolo Bonzini (3): tests: convert check-qom-proplist to keyval qom: move user_creatable_add_opts logic to vl.c and QAPIfy it vl: allow passing JSON to -object include/qom/object_interfaces.h | 50 ++------------------ qom/object_interfaces.c | 57 +---------------------- softmmu/vl.c | 82 +++++++++++++++++++++++++-------- tests/check-qom-proplist.c | 74 ++++++++++++++++++++--------- 4 files changed, 121 insertions(+), 142 deletions(-) -- 2.26.2