[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 10/19] qapi: Simplify how qmp_dispatch() deals with QCO_NO_SU
From: |
Markus Armbruster |
Subject: |
[RFC PATCH 10/19] qapi: Simplify how qmp_dispatch() deals with QCO_NO_SUCCESS_RESP |
Date: |
Thu, 24 Oct 2019 14:34:49 +0200 |
Signed-off-by: Markus Armbruster <address@hidden>
---
qapi/qmp-dispatch.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/qapi/qmp-dispatch.c b/qapi/qmp-dispatch.c
index a69d5b5a96..d1643fe37a 100644
--- a/qapi/qmp-dispatch.c
+++ b/qapi/qmp-dispatch.c
@@ -151,31 +151,31 @@ QDict *qmp_dispatch(QmpCommandList *cmds, QObject
*request,
args = qdict_get_qdict(dict, "arguments");
qobject_ref(args);
}
-
cmd->fn(args, &ret, &err);
+ qobject_unref(args);
if (err) {
- ;
- } else if (cmd->options & QCO_NO_SUCCESS_RESP) {
+ goto out;
+ }
+
+ if (cmd->options & QCO_NO_SUCCESS_RESP) {
g_assert(!ret);
+ return NULL;
} else if (!ret) {
/* TODO turn into assertion */
ret = QOBJECT(qdict_new());
}
- qobject_unref(args);
-
out:
+ assert(!err != !ret);
+
if (err) {
rsp = qmp_error_response(err);
- } else if (ret) {
+ } else {
rsp = qdict_new();
qdict_put_obj(rsp, "return", ret);
- } else {
- /* Can only happen for commands with QCO_NO_SUCCESS_RESP */
- rsp = NULL;
}
- if (rsp && id) {
+ if (id) {
qdict_put_obj(rsp, "id", qobject_ref(id));
}
--
2.21.0
- [RFC PATCH 18/19] qapi: Include a warning in the response to a deprecated command, (continued)
- [RFC PATCH 18/19] qapi: Include a warning in the response to a deprecated command, Markus Armbruster, 2019/10/24
- [RFC PATCH 19/19] qapi: Implement -compat deprecated-output=hide for events, Markus Armbruster, 2019/10/24
- [RFC PATCH 17/19] qapi: Implement -compat deprecated-input=crash for commands, Markus Armbruster, 2019/10/24
- [RFC PATCH 13/19] qapi: New special feature flag "deprecated", Markus Armbruster, 2019/10/24
- [RFC PATCH 05/19] tests/test-qmp-event: Use qobject_is_equal(), Markus Armbruster, 2019/10/24
- [RFC PATCH 14/19] qemu-options: New -compat to set policy for "funny" interfaces, Markus Armbruster, 2019/10/24
- [RFC PATCH 09/19] qapi: Inline do_qmp_dispatch() into qmp_dispatch(), Markus Armbruster, 2019/10/24
- [RFC PATCH 11/19] qapi: Simplify how qmp_dispatch() gets the request ID, Markus Armbruster, 2019/10/24
- [RFC PATCH 16/19] qapi: Implement -compat deprecated-input=reject for commands, Markus Armbruster, 2019/10/24
- [RFC PATCH 06/19] tests/test-qmp-event: Check event is actually emitted, Markus Armbruster, 2019/10/24
- [RFC PATCH 10/19] qapi: Simplify how qmp_dispatch() deals with QCO_NO_SUCCESS_RESP,
Markus Armbruster <=
- [RFC PATCH 08/19] qapi: Consistently put @features parameter right after @ifcond, Markus Armbruster, 2019/10/24
- [RFC PATCH 07/19] qapi: Add feature flags to remaining definitions, Markus Armbruster, 2019/10/24