On Sun, 2014-10-19 at 14:37 +0300, Marcel Apfelbaum wrote: > On Fri, 2014-10-17 at 17:35 +0800, Zhu Guihua wrote: > > Add peripheral_device_del_completion() to let peripheral device del > > completion > > be possible. > > > > Signed-off-by: Zhu Guihua <zhugh.f...@cn.fujitsu.com> > > --- > > monitor.c | 24 ++++++++++++++++++++++++ > > 1 file changed, 24 insertions(+) > > > > diff --git a/monitor.c b/monitor.c > > index 2d14f39..9c3fa01 100644 > > --- a/monitor.c > > +++ b/monitor.c > > @@ -4359,6 +4359,29 @@ static void device_del_bus_completion(ReadLineState > > *rs, BusState *bus, > > } > > } > > > > +static void peripheral_device_del_completion(ReadLineState *rs, > > + const char *str, size_t len) > > +{ > > + Object *peripheral; > > + GSList *list = NULL, *item; > > + > > + peripheral = object_resolve_path("/machine/peripheral/", NULL); > > + if (peripheral == NULL) { > > + return; > > + } > > + > > + object_child_foreach(peripheral, qdev_build_hotpluggable_device_list, > > + &list); > > + > > + for (item = list; item; item = g_slist_next(item)) { > > + DeviceState *dev = item->data; > > + > > + if (dev->id && !strncmp(str, dev->id, len)) { > > + readline_add_completion(rs, dev->id); > > + } > > + > Hi, > > Am I missing something or g_slist_free(list) > should be somewhere here? >
Yes, you are right, g_slist_free(list) should be here. I am sorry to forget to do this. Thanks for your reminding, I will fix this. Regards, Zhu > Thanks, > Marcel > > > > > +} > > + > > void chardev_remove_completion(ReadLineState *rs, int nb_args, const char > > *str) > > { > > size_t len; > > @@ -4432,6 +4455,7 @@ void device_del_completion(ReadLineState *rs, int > > nb_args, const char *str) > > len = strlen(str); > > readline_set_completion_index(rs, len); > > device_del_bus_completion(rs, sysbus_get_default(), str, len); > > + peripheral_device_del_completion(rs, str, len); > > } > > > > void object_del_completion(ReadLineState *rs, int nb_args, const char *str) > > >