diff --git a/monitor.c b/monitor.c index ab65a9aab3..a7af002edb 100644 --- a/monitor.c +++ b/monitor.c @@ -4605,13 +4605,13 @@ void monitor_init(CharDriverState *chr, int flags) qemu_chr_add_handlers(chr, monitor_can_read, monitor_control_read, monitor_control_event, mon); qemu_chr_fe_set_echo(chr, true); + + json_message_parser_init(&mon->mc->parser, handle_qmp_command); } else { qemu_chr_add_handlers(chr, monitor_can_read, monitor_read, monitor_event, mon); } - json_message_parser_init(&mon->mc->parser, handle_qmp_command); - QLIST_INSERT_HEAD(&mon_list, mon, entry); if (!default_mon || (flags & MONITOR_IS_DEFAULT)) default_mon = mon;