The new handler directly calls qmp_query_cpus() to gather data and then prints it. This change allows us to drop the user_print callback.
Signed-off-by: Luiz Capitulino <lcapitul...@redhat.com> --- monitor.c | 13 ++++++------- 1 files changed, 6 insertions(+), 7 deletions(-) diff --git a/monitor.c b/monitor.c index f067d07..2164853 100644 --- a/monitor.c +++ b/monitor.c @@ -931,13 +931,13 @@ static void print_cpu_iter(QObject *obj, void *opaque) monitor_printf(mon, "\n"); } -static void monitor_print_cpus(Monitor *mon, const QObject *data) +static void do_info_cpus(Monitor *mon) { - QList *cpu_list; + QObject *data; - assert(qobject_type(data) == QTYPE_QLIST); - cpu_list = qobject_to_qlist(data); - qlist_iter(cpu_list, print_cpu_iter, mon); + qmp_query_cpus(mon, &data); + qlist_iter(qobject_to_qlist(data), print_cpu_iter, mon); + qobject_decref(data); } static int do_cpu_set(Monitor *mon, const QDict *qdict, QObject **ret_data) @@ -2430,8 +2430,7 @@ static const mon_cmd_t info_cmds[] = { .args_type = "", .params = "", .help = "show infos for each CPU", - .user_print = monitor_print_cpus, - .mhandler.info_new = qmp_query_cpus, + .mhandler.info = do_info_cpus, }, { .name = "history", -- 1.7.3.3.398.g0b0cd