On Fri, Mar 12, 2021 at 09:46:54 +0100, Paolo Bonzini wrote: > On 12/03/21 09:14, Markus Armbruster wrote: > > Paolo Bonzini <pbonzini@xxxxxxxxxx> writes: > > > > > On 11/03/21 15:08, Markus Armbruster wrote: > > > > > I would rather keep the OptsVisitor here. Do the same check for JSON > > > > > syntax that you have in qobject_input_visitor_new_str, and whenever > > > > > you need to walk all -object arguments, use something like this: > > > > > > > > > > typedef struct ObjectArgument { > > > > > const char *id; > > > > > QDict *json; /* or NULL for QemuOpts */ > > > > > QSIMPLEQ_ENTRY(ObjectArgument) next; > > > > > } > > > > > > > > > > I already had patches in my queue to store -object in a GSList of > > > > > dictionaries, changing it to use the above is easy enough. > > > > > > > > I think I'd prefer following -display's precedence. See my reply to > > > > Kevin for details. > > > > > > Yeah, I got independently to the same conclusion and posted patches > > > for that. I was scared that visit_type_ObjectOptions was too much for > > > OptsVisitor but it seems to work... > > > > We have reason to be scared. I'll try to cover this in my review. > > Yes, it's a good reason to possibly even delay those 3 patches to 6.1. Is there a chance we could get the json syntax for -object for now? I think it would simplify libvirt's code a bit and sidestep the issue of converting the already existing parameters from JSON form we have into the commandline form.