On Thu, 16 Feb 2017 14:18:05 +0000
Peter Maydell <peter.mayd...@linaro.org> wrote:

> On 16 February 2017 at 13:57, Igor Mammedov <imamm...@redhat.com> wrote:
> > object_new(FOO) returns an object with ref_cnt == 1
> > and following
> >   object_property_set_bool(cpuobj, true, "realized", NULL)
> > set parent of cpuobj to '/machine/unattached' which makes
> > ref_cnt == 2.
> >
> > Since machvirt_init() doesn't take ownership of cpuobj
> > returned by object_new() it should explicitly drop
> > reference to cpuobj when dangling pointer is about to
> > go out of scope like it's done pc_new_cpu() to avoid
> > object leak.  
> 
> I've always found the object reference semantics somewhat
> confusing (why does realizing a device add a reference,
> for instance?). Do we document them anywhere?
I'm not aware of a place where it's documented.

currently device_realize() sets parent thus increasing
ref counter only if device creator haven't set parent
explicitly.

> 
> thanks
> -- PMM
> 


Reply via email to