[libvirt] [PATCH v9 2/3] qom: call class destructor before unparent
Make sure object is valid when destructor is called. Signed-off-by: Michael S. Tsirkin m...@redhat.com --- qom/object.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qom/object.c b/qom/object.c index 3d638ff..a0e3cbe 100644 --- a/qom/object.c +++ b/qom/object.c @@ -363,12 +363,12 @@ static void object_property_del_child(Object *obj, Object *child, Error **errp) void object_unparent(Object *obj) { object_ref(obj); -if (obj-parent) { -object_property_del_child(obj-parent, obj, NULL); -} if (obj-class-unparent) { (obj-class-unparent)(obj); } +if (obj-parent) { +object_property_del_child(obj-parent, obj, NULL); +} object_unref(obj); } -- MST -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v9 2/3] qom: call class destructor before unparent
Il 21/03/2013 13:07, Michael S. Tsirkin ha scritto: Make sure object is valid when destructor is called. Make sure the object still has a canonical path while the unparent callback is running. Otherwise, the series looks good. Paolo Signed-off-by: Michael S. Tsirkin m...@redhat.com --- qom/object.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qom/object.c b/qom/object.c index 3d638ff..a0e3cbe 100644 --- a/qom/object.c +++ b/qom/object.c @@ -363,12 +363,12 @@ static void object_property_del_child(Object *obj, Object *child, Error **errp) void object_unparent(Object *obj) { object_ref(obj); -if (obj-parent) { -object_property_del_child(obj-parent, obj, NULL); -} if (obj-class-unparent) { (obj-class-unparent)(obj); } +if (obj-parent) { +object_property_del_child(obj-parent, obj, NULL); +} object_unref(obj); } -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v9 2/3] qom: call class destructor before unparent
On Thu, Mar 21, 2013 at 01:25:50PM +0100, Paolo Bonzini wrote: Il 21/03/2013 13:07, Michael S. Tsirkin ha scritto: Make sure object is valid when destructor is called. Make sure the object still has a canonical path while the unparent callback is running. Otherwise, the series looks good. Paolo Worth respinning for? Signed-off-by: Michael S. Tsirkin m...@redhat.com --- qom/object.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qom/object.c b/qom/object.c index 3d638ff..a0e3cbe 100644 --- a/qom/object.c +++ b/qom/object.c @@ -363,12 +363,12 @@ static void object_property_del_child(Object *obj, Object *child, Error **errp) void object_unparent(Object *obj) { object_ref(obj); -if (obj-parent) { -object_property_del_child(obj-parent, obj, NULL); -} if (obj-class-unparent) { (obj-class-unparent)(obj); } +if (obj-parent) { +object_property_del_child(obj-parent, obj, NULL); +} object_unref(obj); } -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v9 2/3] qom: call class destructor before unparent
Il 21/03/2013 13:30, Michael S. Tsirkin ha scritto: On Thu, Mar 21, 2013 at 01:25:50PM +0100, Paolo Bonzini wrote: Il 21/03/2013 13:07, Michael S. Tsirkin ha scritto: Make sure object is valid when destructor is called. Make sure the object still has a canonical path while the unparent callback is running. Otherwise, the series looks good. Worth respinning for? If it goes through the pci branch, of course not but still make the change. Otherwise, probably not. Paolo -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list