[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH qom v3 06/14] qom: Demote already-has-a-parent to a
From: |
Peter Crosthwaite |
Subject: |
[Qemu-devel] [PATCH qom v3 06/14] qom: Demote already-has-a-parent to a regular error |
Date: |
Thu, 25 Sep 2014 22:19:52 -0700 |
Rather than an abort(). This allows callers to decide whether parenting
an already-parented object is a fatal error condition.
Useful for providing a default value for an object's parent in the case
where you want to set one iff it doesn't already have one.
Reviewed-by: Alexander Graf <address@hidden>
Signed-off-by: Peter Crosthwaite <address@hidden>
---
qom/object.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/qom/object.c b/qom/object.c
index fe2d1c9..50e4f30 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -1075,6 +1075,11 @@ void object_property_add_child(Object *obj, const char
*name,
gchar *type;
ObjectProperty *op;
+ if (child->parent != NULL) {
+ error_setg(errp, "child object is already parented");
+ return;
+ }
+
type = g_strdup_printf("child<%s>", object_get_typename(OBJECT(child)));
op = object_property_add(obj, name, type, object_get_child_property, NULL,
@@ -1086,7 +1091,6 @@ void object_property_add_child(Object *obj, const char
*name,
op->resolve = object_resolve_child_property;
object_ref(child);
- g_assert(child->parent == NULL);
child->parent = obj;
out:
--
2.1.0.1.g27b9230
- [Qemu-devel] [PATCH qom v3 00/14] GPIO/IRQ QOMification: Phase 2 - Getting rid of SYSBUS IRQs, Peter Crosthwaite, 2014/09/26
- [Qemu-devel] [PATCH qom v3 01/14] qdev: gpio: Don't allow name share between I and O, Peter Crosthwaite, 2014/09/26
- [Qemu-devel] [PATCH qom v3 02/14] qdev: gpio: Register GPIO inputs as child objects, Peter Crosthwaite, 2014/09/26
- [Qemu-devel] [PATCH qom v3 03/14] qdev: gpio: Register GPIO outputs as QOM links, Peter Crosthwaite, 2014/09/26
- [Qemu-devel] [PATCH qom v3 04/14] qmp: qstring: Handle NULL strings, Peter Crosthwaite, 2014/09/26
- [Qemu-devel] [PATCH qom v3 05/14] qom: Allow clearing of a Link property, Peter Crosthwaite, 2014/09/26
- [Qemu-devel] [PATCH qom v3 06/14] qom: Demote already-has-a-parent to a regular error,
Peter Crosthwaite <=
- [Qemu-devel] [PATCH qom v3 07/14] qdev: gpio: Re-impement qdev_connect_gpio QOM style, Peter Crosthwaite, 2014/09/26
- [Qemu-devel] [PATCH qom v3 08/14] qdev: gpio: Add API for intercepting a GPIO, Peter Crosthwaite, 2014/09/26
- [Qemu-devel] [PATCH qom v3 09/14] qtest/irq: Rework IRQ interception, Peter Crosthwaite, 2014/09/26
- [Qemu-devel] [PATCH qom v3 10/14] irq: Remove qemu_irq_intercept_out, Peter Crosthwaite, 2014/09/26
- [Qemu-devel] [PATCH qom v3 11/14] qdev: gpio: delete NamedGPIOList::out, Peter Crosthwaite, 2014/09/26
- [Qemu-devel] [PATCH qom v3 13/14] qdev: gpio: Define qdev_pass_gpios(), Peter Crosthwaite, 2014/09/26
- [Qemu-devel] [PATCH qom v3 14/14] sysbus: Use TYPE_DEVICE GPIO functionality, Peter Crosthwaite, 2014/09/26
- [Qemu-devel] [PATCH qom v3 12/14] qdev: gpio: Remove qdev_init_gpio_out x1 restriction, Peter Crosthwaite, 2014/09/26
- Re: [Qemu-devel] [PATCH qom v3 00/14] GPIO/IRQ QOMification: Phase 2 - Getting rid of SYSBUS IRQs, Paolo Bonzini, 2014/09/26