[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 22/22] qom: Push error reporting to object_property_
From: |
Andreas Färber |
Subject: |
[Qemu-devel] [PATCH 22/22] qom: Push error reporting to object_property_find() |
Date: |
Mon, 18 Jun 2012 15:59:14 +0200 |
From: Paolo Bonzini <address@hidden>
Avoids duplicated error_set().
Signed-off-by: Paolo Bonzini <address@hidden>
[AF: Also drop error_set() in object_property_del().]
Signed-off-by: Andreas Färber <address@hidden>
---
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, NICInfo *nd)
if (nd->netdev)
qdev_prop_set_netdev(dev, "netdev", nd->netdev);
if (nd->nvectors != 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 = 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,
BlockDriverState *bdrv,
if (bootindex >= 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 *name,
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 found.
*/
-ObjectProperty *object_property_find(Object *obj, const char *name);
+ObjectProperty *object_property_find(Object *obj, const char *name,
+ struct Error **errp);
void object_unparent(Object *obj);
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 *name,
const char *type,
QTAILQ_INSERT_TAIL(&obj->properties, prop, node);
}
-ObjectProperty *object_property_find(Object *obj, const char *name)
+ObjectProperty *object_property_find(Object *obj, const char *name,
+ Error **errp)
{
ObjectProperty *prop;
@@ -682,15 +683,14 @@ 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) {
- error_set(errp, QERR_PROPERTY_NOT_FOUND, "", name);
return;
}
@@ -708,10 +708,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;
}
@@ -725,10 +723,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;
}
@@ -881,10 +877,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;
}
@@ -1067,7 +1061,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;
}
--
1.7.7
- [Qemu-devel] [PATCH 05/22] qom: Make Object a type, (continued)
- [Qemu-devel] [PATCH 05/22] qom: Make Object a type, Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 01/22] qom: Add object_class_get_parent(), Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 09/22] arm_l2x0: Rename "type" property to "cache-type", Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 03/22] qom: Add object_child_foreach(), Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 16/22] qdev: Move SysBus initialization to sysbus.c, Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 20/22] qbus: Initialize in standard way, Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 07/22] qom: Assert that public types have a non-NULL parent field, Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 18/22] qdev: Connect busses with their parent devices, Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 04/22] qom: Add class_base_init, Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 08/22] m48t59: Rename "type" property to "model", Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 22/22] qom: Push error reporting to object_property_find(),
Andreas Färber <=
- [Qemu-devel] [PATCH 10/22] qdev: Push "type" property up to Object, Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 06/22] qom: Drop type_register_static_alias() macro, Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 02/22] qom: Introduce object_property_is_{child, link}(), Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 11/22] qdev: Move bus properties to a separate global, Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 12/22] qdev: Move bus properties to abstract superclasses, Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 19/22] qbus: Make child devices links, Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 13/22] qdev: Clean up global properties, Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 14/22] qdev: Remove qdev_prop_set_defaults, Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 21/22] qdev: Remove qdev_prop_exists(), Andreas Färber, 2012/06/18
- [Qemu-devel] [PATCH 17/22] qdev: Convert busses to QEMU Object Model, Andreas Färber, 2012/06/18