Il 21/01/2013 13:30, Paolo Bonzini ha scritto: > This series makes the ref_count field of device and bus objects actually > match the number of references that the objects have. Once this is > done, the question "how do I delete an object?" has a simple answer: > use object_unparent if the object is reachable from the QOM tree, else use > object_unref. qdev_free and qbus_free become equivalent to simply > object_unparent. object_delete instead is replaced by object_unref. > > Patches 1-3 fix some warts in the last minute patches that went in 1.3. > Patches 4-9 are the bulk of the series. Patches 11-12 touches the CPU > classes instead. > > There is a new patch (#4) that documents how link properties are > reference counted, and the transfer of ownership when the property > is created/deleted. I renamed qbus_remove_children to bus_unparent, > and rebased for the conversion of ->state to ->realized. PPC was also > using object_delete for its CPU, too. Otherwise, there are no changes. > > Paolo > > Paolo Bonzini (12): > qdev: export and use qbus_init > qdev: use object_new, not g_malloc to create buses > qom: preserve object while unparenting it > qom: document reference counting of link properties > qdev: add reference count to a device for the BusChild > qdev: move deletion of children from finalize to unparent > qdev: move unrealization of devices from finalize to unparent > qdev: add reference for the bus while it is referred to by the DeviceState > qdev: inline object_delete into qbus_free/qdev_free > qdev: drop extra references at creation time > cpu: do not use object_delete > qom: remove object_delete > > hw/pci/pci.c | 11 +++-- > hw/pci/pci.h | 5 --- > hw/qdev-core.h | 1 + > hw/qdev-monitor.c | 5 ++- > hw/qdev.c | 105 > +++++++++++++++++++++++++------------------- > hw/sysbus.c | 6 +-- > include/qom/object.h | 22 +++------- > linux-user/syscall.c | 2 +- > qom/object.c | 9 +--- > target-i386/helper.c | 4 +- > target-ppc/translate_init.c | 2 +- > target-sparc/cpu.c | 2 +- > vl.c | 1 + > 13 files changed, 88 insertions(+), 87 deletions(-) >
Ping. Paolo