summary refs log tree commit diff stats
path: root/qom/object.c
diff options
context:
space:
mode:
authorPeter Crosthwaite <peter.crosthwaite@xilinx.com>2014-09-25 22:19:19 -0700
committerPaolo Bonzini <pbonzini@redhat.com>2014-10-23 16:41:25 +0200
commitd3c4931647c16c2ffc09a2c7c80d71c73cd026c6 (patch)
treeae88284c413fc4fe6b50cdec8a699214c28c068f /qom/object.c
parent4adea8042f880dd9bd7cb5c191a781ec86fdc587 (diff)
downloadfocaccia-qemu-d3c4931647c16c2ffc09a2c7c80d71c73cd026c6.tar.gz
focaccia-qemu-d3c4931647c16c2ffc09a2c7c80d71c73cd026c6.zip
qom: Allow clearing of a Link property
By passing in "" to object_property_set_link.

The lead user of this is the QDEV GPIO framework which will implement
GPIO disconnects via an "unlink".  GPIO disconnection is used by
qtest's irq_intercept_out command.

Reviewed-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'qom/object.c')
-rw-r--r--qom/object.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/qom/object.c b/qom/object.c
index a751367e61..c7ef776b4e 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -872,9 +872,13 @@ char *object_property_get_str(Object *obj, const char *name,
 void object_property_set_link(Object *obj, Object *value,
                               const char *name, Error **errp)
 {
-    gchar *path = object_get_canonical_path(value);
-    object_property_set_str(obj, path, name, errp);
-    g_free(path);
+    if (value) {
+        gchar *path = object_get_canonical_path(value);
+        object_property_set_str(obj, path, name, errp);
+        g_free(path);
+    } else {
+        object_property_set_str(obj, "", name, errp);
+    }
 }
 
 Object *object_property_get_link(Object *obj, const char *name,