From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PULL 03/15] qom: allow creating an alias of a child<> property
Date: Tue, 1 Jul 2014 10:34:53 +0200 [thread overview]
Message-ID: <1404203705-15674-4-git-send-email-pbonzini@redhat.com> (raw)
In-Reply-To: <1404203705-15674-1-git-send-email-pbonzini@redhat.com>
Child properties must be unique. Fix this problem by
turning their aliases into links.
The resolve function that forwards to the target property
does not have any knowledge of the target property's type,
so it works fine.
Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
qom/object.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/qom/object.c b/qom/object.c
index 7a892ef..f49335f 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -1607,22 +1607,32 @@ void object_property_add_alias(Object *obj, const char *name,
AliasProperty *prop;
ObjectProperty *op;
ObjectProperty *target_prop;
+ gchar *prop_type;
target_prop = object_property_find(target_obj, target_name, errp);
if (!target_prop) {
return;
}
+ if (object_property_is_child(target_prop)) {
+ prop_type = g_strdup_printf("link%s",
+ target_prop->type + strlen("child"));
+ } else {
+ prop_type = g_strdup(target_prop->type);
+ }
+
prop = g_malloc(sizeof(*prop));
prop->target_obj = target_obj;
prop->target_name = target_name;
- op = object_property_add(obj, name, target_prop->type,
+ op = object_property_add(obj, name, prop_type,
property_get_alias,
property_set_alias,
property_release_alias,
prop, errp);
op->resolve = property_resolve_alias;
+
+ g_free(prop_type);
}
static void object_instance_init(Object *obj)
--
1.8.3.1
next prev parent reply other threads:[~2014-07-01 8:35 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-01 8:34 [Qemu-devel] [PULL for 2.1 00/15] MemoryRegion QOMification Paolo Bonzini
2014-07-01 8:34 ` [Qemu-devel] [PULL 01/15] qom: add object_property_add_alias() Paolo Bonzini
2014-07-01 8:34 ` [Qemu-devel] [PULL 02/15] qom: add a generic mechanism to resolve paths Paolo Bonzini
2014-07-01 8:34 ` Paolo Bonzini [this message]
2014-07-01 8:34 ` [Qemu-devel] [PULL 04/15] mc146818rtc: add "rtc-time" link to "/machine/rtc" Paolo Bonzini
2014-07-01 8:34 ` [Qemu-devel] [PULL 05/15] qom: object: remove parent pointer when unparenting Paolo Bonzini
2014-07-01 8:34 ` [Qemu-devel] [PULL 06/15] qom: object: Ignore refs/unrefs of NULL Paolo Bonzini
2014-07-01 8:34 ` [Qemu-devel] [PULL 07/15] libqtest: escape strings in QMP commands, fix leak Paolo Bonzini
2014-07-01 8:34 ` [Qemu-devel] [PULL 08/15] memory: MemoryRegion: use /machine as default owner Paolo Bonzini
2014-07-01 8:34 ` [Qemu-devel] [PULL 09/15] memory: MemoryRegion: QOMify Paolo Bonzini
2014-07-01 8:35 ` [Qemu-devel] [PULL 10/15] memory: MemoryRegion: replace owner field with QOM parent Paolo Bonzini
2014-07-01 8:35 ` [Qemu-devel] [PULL 11/15] memory: MemoryRegion: Add container and addr props Paolo Bonzini
2014-07-01 8:35 ` [Qemu-devel] [PULL 12/15] memory: MemoryRegion: Add may-overlap and priority props Paolo Bonzini
2014-07-01 8:35 ` [Qemu-devel] [PULL 13/15] memory: MemoryRegion: Add size property Paolo Bonzini
2014-07-01 8:35 ` [Qemu-devel] [PULL 14/15] memory: do not give a name to the internal exec.c regions Paolo Bonzini
2014-07-01 8:35 ` [Qemu-devel] [PULL 15/15] qdev: correctly send DEVICE_DELETED for recursively-deleted devices Paolo Bonzini
2014-07-01 12:12 ` [Qemu-devel] [PULL for 2.1 00/15] MemoryRegion QOMification Peter Maydell
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=1404203705-15674-4-git-send-email-pbonzini@redhat.com \
--to=pbonzini@redhat.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).