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? thanks -- PMM