mirror of https://github.com/xqemu/xqemu.git
monitor: Wean monitor_protocol_emitter() off mon->error
Move mon->error handling to its caller handle_qmp_command(). Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
parent
4086182fcd
commit
70ea0c5899
13
monitor.c
13
monitor.c
|
@ -407,13 +407,14 @@ static QDict *build_qmp_error_dict(const QError *err)
|
||||||
return qobject_to_qdict(obj);
|
return qobject_to_qdict(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void monitor_protocol_emitter(Monitor *mon, QObject *data)
|
static void monitor_protocol_emitter(Monitor *mon, QObject *data,
|
||||||
|
QError *err)
|
||||||
{
|
{
|
||||||
QDict *qmp;
|
QDict *qmp;
|
||||||
|
|
||||||
trace_monitor_protocol_emitter(mon);
|
trace_monitor_protocol_emitter(mon);
|
||||||
|
|
||||||
if (!monitor_has_error(mon)) {
|
if (!err) {
|
||||||
/* success response */
|
/* success response */
|
||||||
qmp = qdict_new();
|
qmp = qdict_new();
|
||||||
if (data) {
|
if (data) {
|
||||||
|
@ -425,9 +426,7 @@ static void monitor_protocol_emitter(Monitor *mon, QObject *data)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* error response */
|
/* error response */
|
||||||
qmp = build_qmp_error_dict(mon->error);
|
qmp = build_qmp_error_dict(err);
|
||||||
QDECREF(mon->error);
|
|
||||||
mon->error = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mon->mc->id) {
|
if (mon->mc->id) {
|
||||||
|
@ -5039,8 +5038,10 @@ static void handle_qmp_command(JSONMessageParser *parser, QList *tokens)
|
||||||
}
|
}
|
||||||
|
|
||||||
err_out:
|
err_out:
|
||||||
monitor_protocol_emitter(mon, data);
|
monitor_protocol_emitter(mon, data, mon->error);
|
||||||
qobject_decref(data);
|
qobject_decref(data);
|
||||||
|
QDECREF(mon->error);
|
||||||
|
mon->error = NULL;
|
||||||
QDECREF(input);
|
QDECREF(input);
|
||||||
QDECREF(args);
|
QDECREF(args);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue