On 9/25/25 02:44, Daniel P. Berrangé wrote:
The monitor_vprintf() code will return -1 if either the monitor
is NULL, or the monitor is QMP. The error_vprintf() code can
take advantage of this to avoid having to duplicate the same
checks, and instead simply look at the return value.

Signed-off-by: Daniel P. Berrangé <berra...@redhat.com>
---
  monitor/monitor.c | 16 +++++++++-------
  1 file changed, 9 insertions(+), 7 deletions(-)

Reviewed-by: Richard Henderson <richard.hender...@linaro.org>


r~


diff --git a/monitor/monitor.c b/monitor/monitor.c
index 03dbe5d131..c00f4aac5a 100644
--- a/monitor/monitor.c
+++ b/monitor/monitor.c
@@ -268,17 +268,19 @@ void monitor_printc(Monitor *mon, int c)
      monitor_printf(mon, "'");
  }
-/*
- * Print to current monitor if we have one, else to stderr.
- */
  int error_vprintf(const char *fmt, va_list ap)
  {
      Monitor *cur_mon = monitor_cur();
-
-    if (cur_mon && !monitor_cur_is_qmp()) {
-        return monitor_vprintf(cur_mon, fmt, ap);
+    /*
+     * This will return -1 if 'cur_mon' is NULL, or is QMP.
+     * IOW this will only print if in HMP, otherwise we
+     * fallback to stderr for QMP / no-monitor scenarios.
+     */
+    int ret = monitor_vprintf(cur_mon, fmt, ap);
+    if (ret == -1) {
+        ret = vfprintf(stderr, fmt, ap);
      }
-    return vfprintf(stderr, fmt, ap);
+    return ret;
  }
static MonitorQAPIEventConf monitor_qapi_event_conf[QAPI_EVENT__MAX] = {


Reply via email to