diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2013-03-18 21:01:37 +0200 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2013-03-26 21:00:45 +0200 |
commit | e998fa8df828ef68ea540a12917d10b4d335c1dd (patch) | |
tree | 0e5c1f751a8a63bfab8a9a33a3b27a8c41ecca02 /qom | |
parent | 0402a5d65ec004df5345d1f736e2ddaa7aee6665 (diff) | |
download | qemu-e998fa8df828ef68ea540a12917d10b4d335c1dd.tar.gz qemu-e998fa8df828ef68ea540a12917d10b4d335c1dd.tar.bz2 qemu-e998fa8df828ef68ea540a12917d10b4d335c1dd.zip |
qom: call class destructor before unparent
It seems more logical to have destruction flow start with the subclass
and move up to the base class. This ensures object has a valid
canonical path when destructor is called.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'qom')
-rw-r--r-- | qom/object.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/qom/object.c b/qom/object.c index 3d638ff273..a0e3cbe559 100644 --- a/qom/object.c +++ b/qom/object.c @@ -363,12 +363,12 @@ static void object_property_del_child(Object *obj, Object *child, Error **errp) void object_unparent(Object *obj) { object_ref(obj); - if (obj->parent) { - object_property_del_child(obj->parent, obj, NULL); - } if (obj->class->unparent) { (obj->class->unparent)(obj); } + if (obj->parent) { + object_property_del_child(obj->parent, obj, NULL); + } object_unref(obj); } |