Il 22/08/2012 05:02, Liu Ping Fan ha scritto: > From: Liu Ping Fan <pingf...@linux.vnet.ibm.com> > > Currently, link property's target is only managed by > object_set_link_property(). This will raise such issue that when > the property is finalized, its target has no opportunity to release. > > Fix this issue by introduce object_finalize_link_property() > > Signed-off-by: Liu Ping Fan <pingf...@linux.vnet.ibm.com>
Acked-by: Paolo Bonzini <pbonz...@redhat.com> Paolo > --- > qom/object.c | 12 +++++++++++- > 1 files changed, 11 insertions(+), 1 deletions(-) > > diff --git a/qom/object.c b/qom/object.c > index a552be2..76b3d34 100644 > --- a/qom/object.c > +++ b/qom/object.c > @@ -957,6 +957,16 @@ static void object_set_link_property(Object *obj, > Visitor *v, void *opaque, > } > } > > +static void object_finalize_link_property(Object *obj, const char *name, > + void *opaque) > +{ > + Object **child = opaque; > + > + if (*child != NULL) { > + object_unref(*child); > + } > +} > + > void object_property_add_link(Object *obj, const char *name, > const char *type, Object **child, > Error **errp) > @@ -968,7 +978,7 @@ void object_property_add_link(Object *obj, const char > *name, > object_property_add(obj, name, full_type, > object_get_link_property, > object_set_link_property, > - NULL, child, errp); > + object_finalize_link_property, child, errp); > > g_free(full_type); > } >