qmp: Use QDict * instead of QObject * for response objects

By using the more specific type, we get fewer downcasts.  The
downcasts are safe, but not obviously so, at least not locally.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20180703085358.13941-24-armbru@redhat.com>
This commit is contained in:
Markus Armbruster 2018-07-03 10:53:49 +02:00
parent cee32796ca
commit d43b16945a
5 changed files with 32 additions and 34 deletions

View file

@ -545,7 +545,7 @@ fail:
#endif
}
static int send_response(GAState *s, QObject *payload)
static int send_response(GAState *s, QDict *payload)
{
const char *buf;
QString *payload_qstr, *response_qstr;
@ -553,7 +553,7 @@ static int send_response(GAState *s, QObject *payload)
g_assert(payload && s->channel);
payload_qstr = qobject_to_json(payload);
payload_qstr = qobject_to_json(QOBJECT(payload));
if (!payload_qstr) {
return -EINVAL;
}
@ -581,7 +581,7 @@ static int send_response(GAState *s, QObject *payload)
static void process_command(GAState *s, QDict *req)
{
QObject *rsp = NULL;
QDict *rsp;
int ret;
g_assert(req);
@ -629,7 +629,7 @@ static void process_event(JSONMessageParser *parser, GQueue *tokens)
error_setg(&err, QERR_UNSUPPORTED);
qdict = qmp_error_response(err);
}
ret = send_response(s, QOBJECT(qdict));
ret = send_response(s, qdict);
if (ret < 0) {
g_warning("error sending error response: %s", strerror(-ret));
}