qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 18/23] qom: accept any compatible type when setting


From: Anthony Liguori
Subject: [Qemu-devel] [PATCH 18/23] qom: accept any compatible type when setting a link property
Date: Mon, 30 Jan 2012 15:08:56 -0600

Links had limited utility before as they only allowed a concrete type to be
specified.  Now we can support abstract types and interfaces which means it's
now possible to have a link<PCIDevice>.

Signed-off-by: Anthony Liguori <address@hidden>
---
 qom/object.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/qom/object.c b/qom/object.c
index 3133a62..4c3ff83 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -724,11 +724,12 @@ static void object_set_link_property(Object *obj, Visitor 
*v, void *opaque,
         if (target) {
             gchar *target_type;
 
-            target_type = g_strdup_printf("link<%s>",
-                                          object_get_typename(OBJECT(target)));
-            if (strcmp(target_type, type) == 0) {
-                *child = target;
+            target_type = g_strdup(&type[5]);
+            target_type[strlen(target_type) - 2] = 0;
+
+            if (object_dynamic_cast(target, target_type)) {
                 object_ref(target);
+                *child = target;
             } else {
                 error_set(errp, QERR_INVALID_PARAMETER_TYPE, name, type);
             }
-- 
1.7.4.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]