From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:37953) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SgcUx-0001g2-Ql for qemu-devel@nongnu.org; Mon, 18 Jun 2012 10:00:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SgcUh-0003Zz-Lb for qemu-devel@nongnu.org; Mon, 18 Jun 2012 10:00:07 -0400 Received: from cantor2.suse.de ([195.135.220.15]:53303 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SgcUh-0003ZR-BT for qemu-devel@nongnu.org; Mon, 18 Jun 2012 09:59:51 -0400 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Mon, 18 Jun 2012 15:59:14 +0200 Message-Id: <1340027954-19045-23-git-send-email-afaerber@suse.de> In-Reply-To: <1340027954-19045-1-git-send-email-afaerber@suse.de> References: <1340027954-19045-1-git-send-email-afaerber@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH 22/22] qom: Push error reporting to object_property_find() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Anthony Liguori From: Paolo Bonzini Avoids duplicated error_set(). Signed-off-by: Paolo Bonzini [AF: Also drop error_set() in object_property_del().] Signed-off-by: Andreas F=C3=A4rber --- hw/qdev.c | 2 +- hw/scsi-bus.c | 2 +- include/qemu/object.h | 4 +++- qom/object.c | 22 ++++++++-------------- 4 files changed, 13 insertions(+), 17 deletions(-) diff --git a/hw/qdev.c b/hw/qdev.c index 654cbca..b20b34d 100644 --- a/hw/qdev.c +++ b/hw/qdev.c @@ -323,7 +323,7 @@ void qdev_set_nic_properties(DeviceState *dev, NICInf= o *nd) if (nd->netdev) qdev_prop_set_netdev(dev, "netdev", nd->netdev); if (nd->nvectors !=3D DEV_NVECTORS_UNSPECIFIED && - object_property_find(OBJECT(dev), "vectors")) { + object_property_find(OBJECT(dev), "vectors", NULL)) { qdev_prop_set_uint32(dev, "vectors", nd->nvectors); } nd->instantiated =3D 1; diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c index a4ae44b..187bc90 100644 --- a/hw/scsi-bus.c +++ b/hw/scsi-bus.c @@ -214,7 +214,7 @@ SCSIDevice *scsi_bus_legacy_add_drive(SCSIBus *bus, B= lockDriverState *bdrv, if (bootindex >=3D 0) { qdev_prop_set_int32(dev, "bootindex", bootindex); } - if (object_property_find(OBJECT(dev), "removable")) { + if (object_property_find(OBJECT(dev), "removable", NULL)) { qdev_prop_set_bit(dev, "removable", removable); } if (qdev_prop_set_drive(dev, "drive", bdrv) < 0) { diff --git a/include/qemu/object.h b/include/qemu/object.h index 8cac7da..8b17776 100644 --- a/include/qemu/object.h +++ b/include/qemu/object.h @@ -639,10 +639,12 @@ void object_property_del(Object *obj, const char *n= ame, struct Error **errp); * object_property_find: * @obj: the object * @name: the name of the property + * @errp: returns an error if this function fails * * Look up a property for an object and return its #ObjectProperty if fo= und. */ -ObjectProperty *object_property_find(Object *obj, const char *name); +ObjectProperty *object_property_find(Object *obj, const char *name, + struct Error **errp); =20 void object_unparent(Object *obj); =20 diff --git a/qom/object.c b/qom/object.c index e072e89..00bb3b0 100644 --- a/qom/object.c +++ b/qom/object.c @@ -672,7 +672,8 @@ void object_property_add(Object *obj, const char *nam= e, const char *type, QTAILQ_INSERT_TAIL(&obj->properties, prop, node); } =20 -ObjectProperty *object_property_find(Object *obj, const char *name) +ObjectProperty *object_property_find(Object *obj, const char *name, + Error **errp) { ObjectProperty *prop; =20 @@ -682,15 +683,14 @@ ObjectProperty *object_property_find(Object *obj, c= onst char *name) } } =20 + error_set(errp, QERR_PROPERTY_NOT_FOUND, "", name); return NULL; } =20 void object_property_del(Object *obj, const char *name, Error **errp) { - ObjectProperty *prop =3D object_property_find(obj, name); - + ObjectProperty *prop =3D object_property_find(obj, name, errp); if (prop =3D=3D NULL) { - error_set(errp, QERR_PROPERTY_NOT_FOUND, "", name); return; } =20 @@ -708,10 +708,8 @@ void object_property_del(Object *obj, const char *na= me, Error **errp) void object_property_get(Object *obj, Visitor *v, const char *name, Error **errp) { - ObjectProperty *prop =3D object_property_find(obj, name); - + ObjectProperty *prop =3D object_property_find(obj, name, errp); if (prop =3D=3D NULL) { - error_set(errp, QERR_PROPERTY_NOT_FOUND, "", name); return; } =20 @@ -725,10 +723,8 @@ void object_property_get(Object *obj, Visitor *v, co= nst char *name, void object_property_set(Object *obj, Visitor *v, const char *name, Error **errp) { - ObjectProperty *prop =3D object_property_find(obj, name); - + ObjectProperty *prop =3D object_property_find(obj, name, errp); if (prop =3D=3D NULL) { - error_set(errp, QERR_PROPERTY_NOT_FOUND, "", name); return; } =20 @@ -881,10 +877,8 @@ char *object_property_print(Object *obj, const char = *name, =20 const char *object_property_get_type(Object *obj, const char *name, Erro= r **errp) { - ObjectProperty *prop =3D object_property_find(obj, name); - + ObjectProperty *prop =3D object_property_find(obj, name, errp); if (prop =3D=3D NULL) { - error_set(errp, QERR_PROPERTY_NOT_FOUND, "", name); return NULL; } =20 @@ -1067,7 +1061,7 @@ gchar *object_get_canonical_path(Object *obj) =20 Object *object_resolve_path_component(Object *parent, gchar *part) { - ObjectProperty *prop =3D object_property_find(parent, part); + ObjectProperty *prop =3D object_property_find(parent, part, NULL); if (prop =3D=3D NULL) { return NULL; } --=20 1.7.7