On 02/07/13 18:01, Eduardo Habkost wrote: > On Tue, Feb 05, 2013 at 09:39:15PM +0100, Laszlo Ersek wrote: >> Conversion status (call chains covered or substituted by error propagation >> marked with square brackets): >> >> do_device_add -> [qemu_find_opts -> error_report] >> do_device_add -> qdev_device_add -> qerror_report >> do_device_add -> qdev_device_add -> qbus_find -> qbus_find_recursive >> -> qerror_report >> do_device_add -> qdev_device_add -> qbus_find -> qerror_report >> do_device_add -> qdev_device_add -> set_property -> qdev_prop_parse >> -> qerror_report_err >> >> Signed-off-by: Laszlo Ersek <ler...@redhat.com> >> --- >> hw/qdev-monitor.c | 7 ++++++- >> 1 files changed, 6 insertions(+), 1 deletions(-) >> >> diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c >> index 56d66c3..bbdc90f 100644 >> --- a/hw/qdev-monitor.c >> +++ b/hw/qdev-monitor.c >> @@ -590,15 +590,20 @@ void do_info_qdm(Monitor *mon, const QDict *qdict) >> int do_device_add(Monitor *mon, const QDict *qdict, QObject **ret_data) >> { >> Error *local_err = NULL; >> + QemuOptsList *list; >> QemuOpts *opts; >> DeviceState *dev; >> >> - opts = qemu_opts_from_qdict(qemu_find_opts("device"), qdict, >> &local_err); >> + list = qemu_find_opts_err("device", &local_err); >> + if (!error_is_set(&local_err)) { >> + opts = qemu_opts_from_qdict(list, qdict, &local_err); >> + } > > Is this really worth the extra code complexity, if the "device" > QemuOptsList is supposed to be always registered by QEMU? I would be > happy enough with a simple "assert(list)" inside qemu_opts_from_qdict().
I don't know. I was told to propagate errors and that's what I attempted to do. When in doubt, I try to go for consistency. I'd be fine either way (especially because this patch can be easily dropped). Thank you for reviewing the series! Laszlo