From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:35233) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RsznP-00046e-Vp for qemu-devel@nongnu.org; Thu, 02 Feb 2012 11:46:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RsznL-0002Yt-RA for qemu-devel@nongnu.org; Thu, 02 Feb 2012 11:46:03 -0500 Received: from mail-pz0-f45.google.com ([209.85.210.45]:35764) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RsznL-0002WX-CY for qemu-devel@nongnu.org; Thu, 02 Feb 2012 11:45:59 -0500 Received: by mail-pz0-f45.google.com with SMTP id p14so2506378dad.4 for ; Thu, 02 Feb 2012 08:45:59 -0800 (PST) Sender: Paolo Bonzini From: Paolo Bonzini Date: Thu, 2 Feb 2012 17:45:28 +0100 Message-Id: <1328201142-26145-3-git-send-email-pbonzini@redhat.com> In-Reply-To: <1328201142-26145-1-git-send-email-pbonzini@redhat.com> References: <1328201142-26145-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH 02/16] qom: store object with correct type in interface links List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org When a link property's type is an interface, the code expects the implementation object (not the parent object) to be stored in the variable. The parent object does not contain the right vtable. Signed-off-by: Paolo Bonzini --- qom/object.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/qom/object.c b/qom/object.c index cd517f6..de6484d 100644 --- a/qom/object.c +++ b/qom/object.c @@ -749,7 +749,8 @@ static void object_set_link_property(Object *obj, Visitor *v, void *opaque, target_type = g_strdup(&type[5]); target_type[strlen(target_type) - 2] = 0; - if (object_dynamic_cast(target, target_type)) { + target = object_dynamic_cast(target, target_type); + if (target) { object_ref(target); *child = target; } else { -- 1.7.7.6