[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 07/25] qdev: use object_property_print in info q
From: |
Jan Kiszka |
Subject: |
Re: [Qemu-devel] [PATCH 07/25] qdev: use object_property_print in info qtree |
Date: |
Tue, 03 Apr 2012 14:28:37 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 |
On 2012-04-03 13:15, Paolo Bonzini wrote:
> Otherwise, non-string properties without a legacy counterpart are missed.
> Also fix error propagation in object_property_print itself, otherwise
> pointer properties are printed as "<null>".
>
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
> hw/qdev-monitor.c | 2 +-
> qom/object.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c
> index 0acfc82..07ac525 100644
> --- a/hw/qdev-monitor.c
> +++ b/hw/qdev-monitor.c
> @@ -492,7 +492,7 @@ static void qdev_print_props(Monitor *mon, DeviceState
> *dev, Property *props,
> if (object_property_get_type(OBJECT(dev), legacy_name, NULL)) {
> value = object_property_get_str(OBJECT(dev), legacy_name, &err);
This is not a criticism on this patch, but I'd like to underline that
the line above only works because legacy props also define print
handlers.
[qdev_property_add_legacy]
object_property_add(OBJECT(dev), name, type,
prop->info->print ? qdev_get_legacy_property :
prop->info->get,
prop->info->parse ? qdev_set_legacy_property :
prop->info->set,
NULL,
prop, errp);
But this statement above is still inconsistent. We should either
assert(print && parse) or handle their non-existence properly.
> } else {
> - value = object_property_get_str(OBJECT(dev), props->name, &err);
> + value = object_property_print(OBJECT(dev), props->name, &err);
> }
> g_free(legacy_name);
>
> diff --git a/qom/object.c b/qom/object.c
> index f3ffaa6..ff36946 100644
> --- a/qom/object.c
> +++ b/qom/object.c
> @@ -850,7 +850,7 @@ char *object_property_print(Object *obj, const char *name,
> char *string;
>
> mo = string_output_visitor_new();
> - object_property_get(obj, string_output_get_visitor(mo), name, NULL);
> + object_property_get(obj, string_output_get_visitor(mo), name, errp);
> string = string_output_get_string(mo);
> string_output_visitor_cleanup(mo);
> return string;
Patch works for me.
Thanks,
Jan
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
- [Qemu-devel] [PATCH 02/25] qom: add object_child_foreach, (continued)
- [Qemu-devel] [PATCH 02/25] qom: add object_child_foreach, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 03/25] qom: add class_base_init, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 05/25] qom: push type up to Object, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 06/25] qdev: fix -device foo,?, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 07/25] qdev: use object_property_print in info qtree, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 08/25] qdev: remove qdev_prop_set_defaults, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 09/25] qdev: move bus properties to a separate global, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 10/25] qdev: do not propagate properties to subclasses, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 11/25] qdev: pick global properties from superclasses, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 12/25] qdev: factor setting of global properties, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 13/25] qdev: replace bus properties with superclass properties, Paolo Bonzini, 2012/04/03