From: Markus Armbruster Date: Fri, 6 Mar 2015 09:47:08 +0000 (+0100) Subject: monitor: Wean monitor_protocol_emitter() off mon->error X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=70ea0c58991ae44b5a1e67d9c189d79029168cb1;p=qemu.git monitor: Wean monitor_protocol_emitter() off mon->error Move mon->error handling to its caller handle_qmp_command(). Signed-off-by: Markus Armbruster Reviewed-by: Eric Blake Reviewed-by: Luiz Capitulino --- diff --git a/monitor.c b/monitor.c index d336b8f94c..56564d5bef 100644 --- a/monitor.c +++ b/monitor.c @@ -407,13 +407,14 @@ static QDict *build_qmp_error_dict(const QError *err) 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; trace_monitor_protocol_emitter(mon); - if (!monitor_has_error(mon)) { + if (!err) { /* success response */ qmp = qdict_new(); if (data) { @@ -425,9 +426,7 @@ static void monitor_protocol_emitter(Monitor *mon, QObject *data) } } else { /* error response */ - qmp = build_qmp_error_dict(mon->error); - QDECREF(mon->error); - mon->error = NULL; + qmp = build_qmp_error_dict(err); } if (mon->mc->id) { @@ -5039,8 +5038,10 @@ static void handle_qmp_command(JSONMessageParser *parser, QList *tokens) } err_out: - monitor_protocol_emitter(mon, data); + monitor_protocol_emitter(mon, data, mon->error); qobject_decref(data); + QDECREF(mon->error); + mon->error = NULL; QDECREF(input); QDECREF(args); }