[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH v1 3/8] qom: Implement overloaded property sette
From: |
Peter Crosthwaite |
Subject: |
[Qemu-devel] [RFC PATCH v1 3/8] qom: Implement overloaded property setters |
Date: |
Sun, 14 Jun 2015 15:36:54 -0700 |
Set the description/value of all matching properties for a given
name.
Signed-off-by: Peter Crosthwaite <address@hidden>
---
qom/object.c | 29 +++++++++++++++++++----------
1 file changed, 19 insertions(+), 10 deletions(-)
diff --git a/qom/object.c b/qom/object.c
index 79172f7..46abf41 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -834,14 +834,24 @@ void object_property_set(Object *obj, Visitor *v, const
char *name,
Error **errp)
{
ObjectProperty *prop = object_property_find(obj, name, errp);
+ Error *local_err = NULL;
+
if (prop == NULL) {
return;
}
- if (!prop->set) {
- error_set(errp, QERR_PERMISSION_DENIED);
- } else {
- prop->set(obj, v, prop->opaque, name, errp);
+ QTAILQ_FOREACH(prop, &obj->properties, node) {
+ if (strcmp(prop->name, name) == 0) {
+ if (!prop->set) {
+ error_set(&local_err, QERR_PERMISSION_DENIED);
+ } else {
+ prop->set(obj, v, prop->opaque, name, &local_err);
+ }
+ }
+ if (local_err) {
+ error_propagate(errp, local_err);
+ return;
+ }
}
}
@@ -1797,13 +1807,12 @@ void object_property_set_description(Object *obj, const
char *name,
{
ObjectProperty *op;
- op = object_property_find(obj, name, errp);
- if (!op) {
- return;
+ QTAILQ_FOREACH(op, &obj->properties, node) {
+ if (strcmp(op->name, name) == 0) {
+ g_free(op->description);
+ op->description = g_strdup(description);
+ }
}
-
- g_free(op->description);
- op->description = g_strdup(description);
}
static void object_instance_init(Object *obj)
--
2.4.3.3.g905f831
- [Qemu-devel] [RFC PATCH v1 0/8] QOM prop overloading + ARM MPCore CPUs, Peter Crosthwaite, 2015/06/14
- [Qemu-devel] [RFC PATCH v1 1/8] qom: Refactor array property code path, Peter Crosthwaite, 2015/06/14
- [Qemu-devel] [RFC PATCH v1 2/8] qom: Add property overloading, Peter Crosthwaite, 2015/06/14
- [Qemu-devel] [RFC PATCH v1 3/8] qom: Implement overloaded property setters,
Peter Crosthwaite <=
- [Qemu-devel] [RFC PATCH v1 4/8] qom: Delete all instances of an overloaded property, Peter Crosthwaite, 2015/06/14
- [Qemu-devel] [RFC PATCH v1 5/8] qom: Disallow getting/resolving an overloaded property, Peter Crosthwaite, 2015/06/14
- [Qemu-devel] [RFC PATCH v1 6/8] qom: Enable overloading of Alias properties, Peter Crosthwaite, 2015/06/14
- [Qemu-devel] [RFC PATCH v1 7/8] arm: realview: Factor out CPU property setters, Peter Crosthwaite, 2015/06/14
- [Qemu-devel] [RFC PATCH v1 8/8] arm: axxmpcore: Add CPUs to MPCore, Peter Crosthwaite, 2015/06/14
- Re: [Qemu-devel] [RFC PATCH v1 0/8] QOM prop overloading + ARM MPCore CPUs, Liviu Ionescu, 2015/06/15
- Re: [Qemu-devel] [RFC PATCH v1 0/8] QOM prop overloading + ARM MPCore CPUs, Alistair Francis, 2015/06/18