[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH v1 1/8] qom: Refactor array property code path
From: |
Peter Crosthwaite |
Subject: |
[Qemu-devel] [RFC PATCH v1 1/8] qom: Refactor array property code path |
Date: |
Sun, 14 Jun 2015 15:36:41 -0700 |
To not be a trial and error based approach. Rather, explicitly scan the
existing property lists for the array format strings using a nested
strcmp loop.
This prepares support for multiple properties with the same name.
Signed-off-by: Peter Crosthwaite <address@hidden>
---
qom/object.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/qom/object.c b/qom/object.c
index 96abd34..2a65ab5 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -735,19 +735,22 @@ object_property_add(Object *obj, const char *name, const
char *type,
int i;
ObjectProperty *ret;
char *name_no_array = g_strdup(name);
+ char *full_name;
name_no_array[name_len - 3] = '\0';
- for (i = 0; ; ++i) {
- char *full_name = g_strdup_printf("%s[%d]", name_no_array, i);
+ for (i = 0;; ++i) {
+ full_name = g_strdup_printf("%s[%d]", name_no_array, i);
- ret = object_property_add(obj, full_name, type, get, set,
- release, opaque, NULL);
- g_free(full_name);
- if (ret) {
+ if (!object_property_find(obj, full_name, NULL)) {
break;
}
+ g_free(full_name);
}
g_free(name_no_array);
+
+ ret = object_property_add(obj, full_name, type, get, set,
+ release, opaque, &error_abort);
+ g_free(full_name);
return ret;
}
--
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 <=
- [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, 2015/06/14
- [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