On Thu, 2014-05-29 at 14:25 +0200, Andreas Färber wrote: > Am 29.05.2014 14:21, schrieb Marcel Apfelbaum: > > On Thu, 2014-05-29 at 12:47 +0200, Andreas Färber wrote: > >> Am 29.05.2014 11:47, schrieb Igor Mammedov: > >>> ... fixes freeing constant from vl.c by machine_finalize() > >>> > >>> Signed-off-by: Igor Mammedov <imamm...@redhat.com> > >> > >> Did you check whether there are any others in need of changes? I could > >> imagine kernel_irqchip does, and I see that we forgot to fix the > >> underscore in the property name, damn. Marcel, can you please look into > >> fixing that? I had outlined how to. > > Hi Andreas, > > > > I didn't forget to do that, I responded on the mail thread why I think we > > shouldn't, > > even if is against QOM best practices. > > I'll copy-paste: > > > > Anyway, the real problem here is that what is elegant in this solution is: > > machine_opts = qemu_get_machine_opts(); > > if (qemu_opt_foreach(machine_opts, object_set_property, > > current_machine, 1) < 0) { > > object_unref(OBJECT(current_machine)); > > exit(1); > > } > > It automatically fills in the machine state properties with the options > > from the command line. > > It will work with machine sub-types that have specific properties without > > the need > > to manually add it to vl.c. The error flow is also elegant (if a sub-type > > does not have the > > user supplied property). > > > > If we use machine-specific wrappers to convert "_" -> "-" we loose the > > above. > > There was nothing machine-specific in my proposal. Only the > implementation of object_set_property() would need to be extended or > copied&modified à la X86CPU and only "-"-based properties added in > machine_initfn(). OK, sorry, I got it wrong. Anyway, I also like Igor's idea.
Thanks, Marcel > > > As an alternative we could rename the machine option to use "-"... > > That's not been an option for command line compatibility reasons. > > Regards, > Andreas >