By passing in NULL to object_property_set_link. The lead user of this is the QDEV GPIO framework which will implement GPIO disconnects via an "unlink".
Signed-off-by: Peter Crosthwaite <peter.crosthwa...@xilinx.com> --- qom/object.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qom/object.c b/qom/object.c index c869e8e..8821e23 100644 --- a/qom/object.c +++ b/qom/object.c @@ -881,7 +881,7 @@ 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); + gchar *path = value ? object_get_canonical_path(value) : NULL; object_property_set_str(obj, path, name, errp); g_free(path); } @@ -1172,7 +1172,7 @@ static void object_set_link_property(Object *obj, Visitor *v, void *opaque, visit_type_str(v, &path, name, &local_err); - if (!local_err && strcmp(path, "") != 0) { + if (!local_err && path && strcmp(path, "") != 0) { new_target = object_resolve_link(obj, name, path, &local_err); } -- 2.0.1.1.gfbfc394