Am 05.04.2012 13:30, schrieb Paolo Bonzini: > Il 05/04/2012 13:21, Andreas Färber ha scritto: >> Specify the root to search from as argument. This avoids hardcoding >> "/machine" in some places and makes it more flexible. >> >> Signed-off-by: Andreas Färber <afaer...@suse.de> >> Cc: Paolo Bonzini <pbonz...@redhat.com> >> Cc: Anthony Liguori <anth...@codemonkey.ws> > > Looks good, thanks.
Ping! Anthony, can you apply or are you waiting for explicit *-bys? Andreas > > Paolo > >> --- >> hw/qdev-monitor.c | 4 ++-- >> hw/qdev.c | 7 ++++--- >> include/qemu/object.h | 3 ++- >> qom/container.c | 4 ++-- >> 4 files changed, 10 insertions(+), 8 deletions(-) >> >> diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c >> index 4783366..67f296b 100644 >> --- a/hw/qdev-monitor.c >> +++ b/hw/qdev-monitor.c >> @@ -180,7 +180,7 @@ static Object *qdev_get_peripheral(void) >> static Object *dev; >> >> if (dev == NULL) { >> - dev = container_get("/machine/peripheral"); >> + dev = container_get(qdev_get_machine(), "/peripheral"); >> } >> >> return dev; >> @@ -191,7 +191,7 @@ static Object *qdev_get_peripheral_anon(void) >> static Object *dev; >> >> if (dev == NULL) { >> - dev = container_get("/machine/peripheral-anon"); >> + dev = container_get(qdev_get_machine(), "/peripheral-anon"); >> } >> >> return dev; >> diff --git a/hw/qdev.c b/hw/qdev.c >> index 0d3c0fc..efa4c5d 100644 >> --- a/hw/qdev.c >> +++ b/hw/qdev.c >> @@ -157,8 +157,9 @@ int qdev_init(DeviceState *dev) >> static int unattached_count = 0; >> gchar *name = g_strdup_printf("device[%d]", unattached_count++); >> >> - object_property_add_child(container_get("/machine/unattached"), >> name, >> - OBJECT(dev), NULL); >> + object_property_add_child(container_get(qdev_get_machine(), >> + "/unattached"), >> + name, OBJECT(dev), NULL); >> g_free(name); >> } >> >> @@ -673,7 +674,7 @@ Object *qdev_get_machine(void) >> static Object *dev; >> >> if (dev == NULL) { >> - dev = container_get("/machine"); >> + dev = container_get(object_get_root(), "/machine"); >> } >> >> return dev; >> diff --git a/include/qemu/object.h b/include/qemu/object.h >> index a675937..ca1649c 100644 >> --- a/include/qemu/object.h >> +++ b/include/qemu/object.h >> @@ -905,6 +905,7 @@ void object_property_add_str(Object *obj, const char >> *name, >> >> /** >> * container_get: >> + * @root: root of the #path, e.g., object_get_root() >> * @path: path to the container >> * >> * Return a container object whose path is @path. Create more containers >> @@ -912,7 +913,7 @@ void object_property_add_str(Object *obj, const char >> *name, >> * >> * Returns: the container object. >> */ >> -Object *container_get(const char *path); >> +Object *container_get(Object *root, const char *path); >> >> >> #endif >> diff --git a/qom/container.c b/qom/container.c >> index 67e9e8a..c9940ab 100644 >> --- a/qom/container.c >> +++ b/qom/container.c >> @@ -25,7 +25,7 @@ static void container_register_types(void) >> type_register_static(&container_info); >> } >> >> -Object *container_get(const char *path) >> +Object *container_get(Object *root, const char *path) >> { >> Object *obj, *child; >> gchar **parts; >> @@ -33,7 +33,7 @@ Object *container_get(const char *path) >> >> parts = g_strsplit(path, "/", 0); >> assert(parts != NULL && parts[0] != NULL && !parts[0][0]); >> - obj = object_get_root(); >> + obj = root; >> >> for (i = 1; parts[i] != NULL; i++, obj = child) { >> child = object_resolve_path_component(obj, parts[i]); -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg