[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 1/7] qom: Make object_child_foreach() safe for object
From: |
Andreas Färber |
Subject: |
[Qemu-devel] [PULL 1/7] qom: Make object_child_foreach() safe for objects removal |
Date: |
Thu, 4 Sep 2014 19:21:09 +0200 |
From: Alexey Kardashevskiy <address@hidden>
Current object_child_foreach() uses QTAILQ_FOREACH() to walk
through children and that makes children removal from the callback
impossible.
This makes object_child_foreach() use QTAILQ_FOREACH_SAFE().
Signed-off-by: Alexey Kardashevskiy <address@hidden>
Reviewed-by: Hu Tao <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>
---
qom/object.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/qom/object.c b/qom/object.c
index 79bd0cc..a298b32 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -668,10 +668,10 @@ void object_class_foreach(void (*fn)(ObjectClass *klass,
void *opaque),
int object_child_foreach(Object *obj, int (*fn)(Object *child, void *opaque),
void *opaque)
{
- ObjectProperty *prop;
+ ObjectProperty *prop, *next;
int ret = 0;
- QTAILQ_FOREACH(prop, &obj->properties, node) {
+ QTAILQ_FOREACH_SAFE(prop, &obj->properties, node, next) {
if (object_property_is_child(prop)) {
ret = fn(prop->opaque, opaque);
if (ret != 0) {
--
1.8.4.5
- [Qemu-devel] [PULL for-2.1 0/7] QOM devices patch queue 2014-09-04, Andreas Färber, 2014/09/04
- [Qemu-devel] [PULL 1/7] qom: Make object_child_foreach() safe for objects removal,
Andreas Färber <=
- [Qemu-devel] [PULL 2/7] machine: Clean up -machine handling, Andreas Färber, 2014/09/04
- [Qemu-devel] [PULL 6/7] qdev: Use NULL instead of local_err for qbus_child unrealize, Andreas Färber, 2014/09/04
- [Qemu-devel] [PULL 5/7] qdev: Use error_abort instead of using local_err, Andreas Färber, 2014/09/04
- [Qemu-devel] [PULL 3/7] qom: Add automatic arrayification to object_property_add(), Andreas Färber, 2014/09/04
- [Qemu-devel] [PULL 4/7] memory: Remove object_property_add_child_array(), Andreas Färber, 2014/09/04
- [Qemu-devel] [PULL 7/7] qdev: Add cleanup logic in device_set_realized() to avoid resource leak, Andreas Färber, 2014/09/04
- Re: [Qemu-devel] [PULL for-2.1 0/7] QOM devices patch queue 2014-09-04, Peter Maydell, 2014/09/05