[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH v1 4/8] qom: Delete all instances of an overload
From: |
Peter Crosthwaite |
Subject: |
[Qemu-devel] [RFC PATCH v1 4/8] qom: Delete all instances of an overloaded property |
Date: |
Sun, 14 Jun 2015 15:37:00 -0700 |
If a property name is overloaded all instances should be deleted by the
deleter.
Signed-off-by: Peter Crosthwaite <address@hidden>
---
qom/object.c | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/qom/object.c b/qom/object.c
index 46abf41..967ed0d 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -798,21 +798,23 @@ ObjectProperty *object_property_find(Object *obj, const
char *name,
void object_property_del(Object *obj, const char *name, Error **errp)
{
- ObjectProperty *prop = object_property_find(obj, name, errp);
- if (prop == NULL) {
- return;
- }
+ for (;;) {
+ ObjectProperty *prop = object_property_find(obj, name, errp);
+ if (prop == NULL) {
+ return;
+ }
- if (prop->release) {
- prop->release(obj, name, prop->opaque);
- }
+ if (prop->release) {
+ prop->release(obj, name, prop->opaque);
+ }
- QTAILQ_REMOVE(&obj->properties, prop, node);
+ QTAILQ_REMOVE(&obj->properties, prop, node);
- g_free(prop->name);
- g_free(prop->type);
- g_free(prop->description);
- g_free(prop);
+ g_free(prop->name);
+ g_free(prop->type);
+ g_free(prop->description);
+ g_free(prop);
+ }
}
void object_property_get(Object *obj, Visitor *v, const char *name,
--
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, 2015/06/14
- [Qemu-devel] [RFC PATCH v1 4/8] qom: Delete all instances of an overloaded property,
Peter Crosthwaite <=
- [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