qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Subject: [Qemu-devel] [PULL 06/24] qom: Demote already-has-a-parent to a regular error
Date: Thu, 23 Oct 2014 15:33:54 +0200	[thread overview]
Message-ID: <1414071252-7003-7-git-send-email-pbonzini@redhat.com> (raw)
In-Reply-To: <1414071252-7003-1-git-send-email-pbonzini@redhat.com>

From: Peter Crosthwaite <peter.crosthwaite@xilinx.com>

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 <agraf@suse.de>
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 qom/object.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/qom/object.c b/qom/object.c
index c7ef776..1812c73 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -1089,6 +1089,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,
@@ -1100,7 +1105,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:
-- 
1.8.3.1

  parent reply	other threads:[~2014-10-23 13:34 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-23 13:33 [Qemu-devel] [PULL 00/24] SCSI, maintainers and more - 2014-10-17 Paolo Bonzini
2014-10-23 13:33 ` [Qemu-devel] [PULL 01/24] virtio-scsi-dataplane: Add op blocker Paolo Bonzini
2014-10-23 13:33 ` [Qemu-devel] [PULL 02/24] virtio-scsi: dataplane: print why starting failed Paolo Bonzini
2014-10-23 13:33 ` [Qemu-devel] [PULL 03/24] virtio-scsi: dataplane: fail setup gracefully Paolo Bonzini
2014-10-23 13:33 ` [Qemu-devel] [PULL 04/24] virtio-scsi: dataplane: stop trying on notifier error Paolo Bonzini
2014-10-23 13:33 ` [Qemu-devel] [PULL 05/24] qom: Allow clearing of a Link property Paolo Bonzini
2014-10-23 13:33 ` Paolo Bonzini [this message]
2014-10-23 13:33 ` [Qemu-devel] [PULL 07/24] qdev: gpio: Re-implement qdev_connect_gpio QOM style Paolo Bonzini
2014-10-23 13:33 ` [Qemu-devel] [PULL 08/24] qdev: gpio: Add API for intercepting a GPIO Paolo Bonzini
2014-10-23 13:33 ` [Qemu-devel] [PULL 09/24] qtest/irq: Rework IRQ interception Paolo Bonzini
2014-10-23 13:33 ` [Qemu-devel] [PULL 10/24] irq: Remove qemu_irq_intercept_out Paolo Bonzini
2014-10-23 13:33 ` [Qemu-devel] [PULL 11/24] qdev: gpio: delete NamedGPIOList::out Paolo Bonzini
2014-10-23 13:34 ` [Qemu-devel] [PULL 12/24] qdev: gpio: Remove qdev_init_gpio_out x1 restriction Paolo Bonzini
2014-10-23 13:34 ` [Qemu-devel] [PULL 13/24] qdev: gpio: Define qdev_pass_gpios() Paolo Bonzini
2014-10-23 13:34 ` [Qemu-devel] [PULL 14/24] sysbus: Use TYPE_DEVICE GPIO functionality Paolo Bonzini
2014-10-23 13:34 ` [Qemu-devel] [PULL 15/24] target-i386: warns users when CPU threads>1 for non-Intel CPUs Paolo Bonzini
2014-10-23 13:34 ` [Qemu-devel] [PULL 16/24] MAINTAINERS: grab more files from Anthony's pile Paolo Bonzini
2014-10-23 13:34 ` [Qemu-devel] [PULL 17/24] MAINTAINERS: add Samuel Thibault as usb-serial.c and baum.c maintainer Paolo Bonzini
2014-10-23 13:34 ` [Qemu-devel] [PULL 18/24] MAINTAINERS: add myself for X86 Paolo Bonzini
2014-10-23 13:34 ` [Qemu-devel] [PULL 19/24] MAINTAINERS: Add more TCG files Paolo Bonzini
2014-10-23 13:34 ` [Qemu-devel] [PULL 20/24] MAINTAINERS: add some tests directories Paolo Bonzini
2014-10-23 13:34 ` [Qemu-devel] [PULL 21/24] MAINTAINERS: avoid M entries that point to mailing lists Paolo Bonzini
2014-10-23 13:34 ` [Qemu-devel] [PULL 22/24] qtest: fix qtest log fd should be initialized before qtest chardev Paolo Bonzini
2014-10-23 13:34 ` [Qemu-devel] [PULL 23/24] get_maintainer.pl: move git loop under "if ($email) {" Paolo Bonzini
2014-10-23 13:34 ` [Qemu-devel] [PULL 24/24] get_maintainer.pl: restrict cases where it falls back to --git Paolo Bonzini
2014-10-23 14:32 ` [Qemu-devel] [PULL 00/24] SCSI, maintainers and more - 2014-10-17 Peter Maydell
2014-10-23 14:39   ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1414071252-7003-7-git-send-email-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=peter.crosthwaite@xilinx.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).