summaryrefslogtreecommitdiffstats
path: root/qom/object.c
diff options
context:
space:
mode:
authorPeter Maydell2018-06-12 16:34:34 +0200
committerPeter Maydell2018-06-12 16:34:34 +0200
commit2ab09bf2f9f55b9fb8d2de6eb2ba2a8570e268e2 (patch)
tree882ab7bb5da085f75b6a5e1094f6df266183c562 /qom/object.c
parentMerge remote-tracking branch 'remotes/dgibson/tags/ppc-for-3.0-20180612' into... (diff)
parentusb-mtp: Return error on suspicious TYPE_DATA packet from initiator (diff)
downloadqemu-2ab09bf2f9f55b9fb8d2de6eb2ba2a8570e268e2.tar.gz
qemu-2ab09bf2f9f55b9fb8d2de6eb2ba2a8570e268e2.tar.xz
qemu-2ab09bf2f9f55b9fb8d2de6eb2ba2a8570e268e2.zip
Merge remote-tracking branch 'remotes/kraxel/tags/usb-20180612-pull-request' into staging
usb: bug fix collection, doc update. # gpg: Signature made Tue 12 Jun 2018 11:44:17 BST # gpg: using RSA key 4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * remotes/kraxel/tags/usb-20180612-pull-request: usb-mtp: Return error on suspicious TYPE_DATA packet from initiator usb-hcd-xhci-test: add a test for ccid hotplug usb-ccid: fix bus leak object: fix OBJ_PROP_LINK_UNREF_ON_RELEASE ambivalence bus: do not unref the added child bus on realize usb/dev-mtp: Fix use of uninitialized values usb: correctly handle Zero Length Packets usb: update docs Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'qom/object.c')
-rw-r--r--qom/object.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/qom/object.c b/qom/object.c
index cb7a8cd589..e6462f289c 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -1564,9 +1564,11 @@ static void object_set_link_property(Object *obj, Visitor *v,
return;
}
- object_ref(new_target);
*child = new_target;
- object_unref(old_target);
+ if (prop->flags == OBJ_PROP_LINK_STRONG) {
+ object_ref(new_target);
+ object_unref(old_target);
+ }
}
static Object *object_resolve_link_property(Object *parent, void *opaque, const gchar *part)
@@ -1581,7 +1583,7 @@ static void object_release_link_property(Object *obj, const char *name,
{
LinkProperty *prop = opaque;
- if ((prop->flags & OBJ_PROP_LINK_UNREF_ON_RELEASE) && *prop->child) {
+ if ((prop->flags & OBJ_PROP_LINK_STRONG) && *prop->child) {
object_unref(*prop->child);
}
g_free(prop);