@samitouri / QOSamiQemu / commits / 22440cf2b3

monitor: use dynamic cast in QMP commands

Rather than asserting monitor_is_qmp(), use a QOM cast via MONITOR_QMP which performs an assert already. Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Tested-by: Peter Krempa <pkrempa@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20260706135824.2623960-20-berrange@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Daniel P. Berrangé committed Jul 6, 2026 at 14:58 UTC 22440cf2b3c8edd181d8a9958caa1bb285f8428a
1 file changed +2 -10
monitor/qmp-cmds-control.c
+2 -10
@@ -72,11 +72,7 @@ static bool qmp_caps_accept(MonitorQMP *mon, QMPCapabilityList *list,
72 void qmp_qmp_capabilities(bool has_enable, QMPCapabilityList *enable,
73 Error **errp)
74 {
75 - Monitor *cur_mon = monitor_cur();
76 - MonitorQMP *mon;
77 -
78 - assert(monitor_is_qmp(cur_mon));
79 - mon = container_of(cur_mon, MonitorQMP, parent_obj);
75 + MonitorQMP *mon = MONITOR_QMP(monitor_cur());
76
77 if (mon->commands == &qmp_commands) {
78 error_set(errp, ERROR_CLASS_COMMAND_NOT_FOUND,
@@ -122,11 +118,7 @@ static void query_commands_cb(const QmpCommand *cmd, void *opaque)
118 CommandInfoList *qmp_query_commands(Error **errp)
119 {
120 CommandInfoList *list = NULL;
125 - Monitor *cur_mon = monitor_cur();
126 - MonitorQMP *mon;
127 -
128 - assert(monitor_is_qmp(cur_mon));
129 - mon = container_of(cur_mon, MonitorQMP, parent_obj);
121 + MonitorQMP *mon = MONITOR_QMP(monitor_cur());
122
123 qmp_for_each_command(mon->commands, query_commands_cb, &list);
124