[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 04/15] qdev_prop_parse(): push error handling
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-devel] [PATCH v2 04/15] qdev_prop_parse(): push error handling to callers |
Date: |
Thu, 7 Feb 2013 15:05:55 -0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Tue, Feb 05, 2013 at 09:39:17PM +0100, Laszlo Ersek wrote:
> Error consumption is moved from qdev_prop_parse() to its direct callers.
>
> 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 <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
> ---
> hw/qdev-monitor.c | 5 ++++-
> hw/qdev-properties.c | 9 ++++++---
> 2 files changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c
> index 02297e1..5eb1c8c 100644
> --- a/hw/qdev-monitor.c
> +++ b/hw/qdev-monitor.c
> @@ -103,13 +103,16 @@ static void qdev_print_devinfo(ObjectClass *klass, void
> *opaque)
> static int set_property(const char *name, const char *value, void *opaque)
> {
> DeviceState *dev = opaque;
> + Error *err = NULL;
>
> if (strcmp(name, "driver") == 0)
> return 0;
> if (strcmp(name, "bus") == 0)
> return 0;
>
> - if (qdev_prop_parse(dev, name, value, NULL) == -1) {
> + if (qdev_prop_parse(dev, name, value, &err) == -1) {
> + qerror_report_err(err);
> + error_free(err);
> return -1;
> }
> return 0;
> diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c
> index e2dbbbe..8e3d014 100644
> --- a/hw/qdev-properties.c
> +++ b/hw/qdev-properties.c
> @@ -850,8 +850,7 @@ int qdev_prop_parse(DeviceState *dev, const char *name,
> const char *value,
> g_free(legacy_name);
>
> if (err) {
> - qerror_report_err(err);
> - error_free(err);
> + error_propagate(errp, err);
> return -1;
> }
> return 0;
> @@ -963,10 +962,14 @@ void qdev_prop_set_globals(DeviceState *dev)
> do {
> GlobalProperty *prop;
> QTAILQ_FOREACH(prop, &global_props, next) {
> + Error *err = NULL;
> +
> if (strcmp(object_class_get_name(class), prop->driver) != 0) {
> continue;
> }
> - if (qdev_prop_parse(dev, prop->property, prop->value, NULL) !=
> 0) {
> + if (qdev_prop_parse(dev, prop->property, prop->value, &err) !=
> 0) {
> + qerror_report_err(err);
> + error_free(err);
> exit(1);
> }
> }
> --
> 1.7.1
>
>
--
Eduardo
- [Qemu-devel] [PATCH v2 01/15] remove some trailing whitespace, (continued)
- [Qemu-devel] [PATCH v2 03/15] qdev_prop_parse(): extend signature with Error, Laszlo Ersek, 2013/02/05
- [Qemu-devel] [PATCH v2 04/15] qdev_prop_parse(): push error handling to callers, Laszlo Ersek, 2013/02/05
- Re: [Qemu-devel] [PATCH v2 04/15] qdev_prop_parse(): push error handling to callers,
Eduardo Habkost <=
- [Qemu-devel] [PATCH v2 05/15] qdev_prop_parse(): change return type to void, Laszlo Ersek, 2013/02/05
- [Qemu-devel] [PATCH v2 06/15] set_property(): extend signature with Error, Laszlo Ersek, 2013/02/05
- [Qemu-devel] [PATCH v2 07/15] set_property(): push error handling to callers, Laszlo Ersek, 2013/02/05
- [Qemu-devel] [PATCH v2 12/15] qbus_find(): propagate error handling / consumption to callers, Laszlo Ersek, 2013/02/05
- [Qemu-devel] [PATCH v2 11/15] qbus_find(): extend signature with Error, Laszlo Ersek, 2013/02/05