From a434684a57f95f65bc844f24240abd9031db1d2c Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Thu, 1 Dec 2022 16:18:52 +0100 Subject: [PATCH] qemu: monitor: Introduce qemuMonitorJSONGetReply, a better qemuMonitorJSONCheckReply Rather than simply checking that the 'return' field is of the expected type we can directly return it as the caller is very likely going to use it. Extract the code into the new function and add a wrapper to preserve old functionality. Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- src/qemu/qemu_monitor_json.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index f4e942a32f..e6cfaaf0e9 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -396,15 +396,15 @@ qemuMonitorJSONCheckError(virJSONValue *cmd, } -static int -qemuMonitorJSONCheckReply(virJSONValue *cmd, - virJSONValue *reply, - virJSONType type) +static virJSONValue * +qemuMonitorJSONGetReply(virJSONValue *cmd, + virJSONValue *reply, + virJSONType type) { virJSONValue *data; if (qemuMonitorJSONCheckError(cmd, reply) < 0) - return -1; + return NULL; data = virJSONValueObjectGet(reply, "return"); if (virJSONValueGetType(data) != type) { @@ -417,9 +417,21 @@ qemuMonitorJSONCheckReply(virJSONValue *cmd, _("unexpected type returned by QEMU command '%s'"), qemuMonitorJSONCommandName(cmd)); - return -1; + return NULL; } + return data; +} + + +static int +qemuMonitorJSONCheckReply(virJSONValue *cmd, + virJSONValue *reply, + virJSONType type) +{ + if (!qemuMonitorJSONGetReply(cmd, reply, type)) + return -1; + return 0; }