]> git.proxmox.com Git - mirror_qemu.git/commit
object: sure up reference counting
authorAnthony Liguori <aliguori@us.ibm.com>
Fri, 23 Dec 2011 14:47:39 +0000 (08:47 -0600)
committerAnthony Liguori <aliguori@us.ibm.com>
Fri, 3 Feb 2012 16:41:08 +0000 (10:41 -0600)
commitdb85b575b9f29487d1dd854da730a9293d91198a
treeefc2e12f5ff4816c1c104a4e7398f0e9ea3cd62c
parentd03d6b4e5cc33d5c9e035e68aa30da1a32780f7d
object: sure up reference counting

Now we have the following behavior:

1) object_new() returns an object with ref = 1
2) object_initialize() does not increase the reference count (ref may be 0).
3) object_deref() will finalize the object when ref = 0.  it does not free the
   memory associated with the object.
4) both link and child properties correctly set the reference count.

The expected usage is the following:

1) child devices should generally be created via object_initialize() using
   memory from the parent device.  Adding the object as a child property will
   take ownership of the object and tie the child's life cycle to the parent.

2) If a child device is created via qdev_create() or some other form of
   object_new(), there must be an object_delete() call in the parent device's
   finalize function.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
qom/object.c