Am 23.05.2012 17:44, schrieb Paolo Bonzini: > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > hw/qdev.c | 2 +- > hw/scsi-bus.c | 2 +- > include/qemu/object.h | 4 +++- > qom/object.c | 22 ++++++++++------------ > 4 files changed, 15 insertions(+), 15 deletions(-) [...] > diff --git a/qom/object.c b/qom/object.c > index 13fd157..68a4c57 100644 > --- a/qom/object.c > +++ b/qom/object.c [...] > @@ -672,12 +672,16 @@ ObjectProperty *object_property_find(Object *obj, const > char *name) > } > } > > + error_set(errp, QERR_PROPERTY_NOT_FOUND, "", name); > return NULL; > } > > void object_property_del(Object *obj, const char *name, Error **errp) > { > - ObjectProperty *prop = object_property_find(obj, name); > + ObjectProperty *prop = object_property_find(obj, name, errp); > + if (prop == NULL) { > + return; > + } > > if (prop == NULL) { > error_set(errp, QERR_PROPERTY_NOT_FOUND, "", name);
Beep! > @@ -698,10 +702,8 @@ void object_property_del(Object *obj, const char *name, > Error **errp) > void object_property_get(Object *obj, Visitor *v, const char *name, > Error **errp) > { > - ObjectProperty *prop = object_property_find(obj, name); > - > + ObjectProperty *prop = object_property_find(obj, name, errp); > if (prop == NULL) { > - error_set(errp, QERR_PROPERTY_NOT_FOUND, "", name); > return; > } > Currently it doesn't happen, but I wonder if we should check error_is_set(errp) instead of or in addition to prop == NULL now? Applies to all callsites above and below. Andreas > @@ -715,10 +717,8 @@ void object_property_get(Object *obj, Visitor *v, const > char *name, > void object_property_set(Object *obj, Visitor *v, const char *name, > Error **errp) > { > - ObjectProperty *prop = object_property_find(obj, name); > - > + ObjectProperty *prop = object_property_find(obj, name, errp); > if (prop == NULL) { > - error_set(errp, QERR_PROPERTY_NOT_FOUND, "", name); > return; > } > > @@ -871,10 +871,8 @@ char *object_property_print(Object *obj, const char > *name, > > const char *object_property_get_type(Object *obj, const char *name, Error > **errp) > { > - ObjectProperty *prop = object_property_find(obj, name); > - > + ObjectProperty *prop = object_property_find(obj, name, errp); > if (prop == NULL) { > - error_set(errp, QERR_PROPERTY_NOT_FOUND, "", name); > return NULL; > } > > @@ -1057,7 +1055,7 @@ gchar *object_get_canonical_path(Object *obj) > > Object *object_resolve_path_component(Object *parent, gchar *part) > { > - ObjectProperty *prop = object_property_find(parent, part); > + ObjectProperty *prop = object_property_find(parent, part, NULL); > if (prop == NULL) { > return NULL; > } -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg