"Denis V. Lunev" <[email protected]> writes: > Calculate req_json only if trace_handle_qmp_command enabled. > > Signed-off-by: Denis V. Lunev <[email protected]> > CC: Stefan Hajnoczi <[email protected]> > CC: LluĂs Vilanova <[email protected]> > CC: Dr. David Alan Gilbert <[email protected]> > CC: Markus Armbruster <[email protected]> > --- > Changes from v1: > - written in the explicit for, as discussed in the mailing list > > monitor.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/monitor.c b/monitor.c > index d8ac20f6ca..2bfeb9bbcc 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -3822,7 +3822,6 @@ static void handle_qmp_command(JSONMessageParser > *parser, GQueue *tokens) > QDict *qdict = NULL; > Monitor *mon = cur_mon; > Error *err = NULL; > - QString *req_json; > > req = json_parser_parse_err(tokens, NULL, &err); > if (!req && !err) { > @@ -3840,9 +3839,11 @@ static void handle_qmp_command(JSONMessageParser > *parser, GQueue *tokens) > qdict_del(qdict, "id"); > } /* else will fail qmp_dispatch() */ > > - req_json = qobject_to_json(req); > - trace_handle_qmp_command(mon, qstring_get_str(req_json)); > - qobject_decref(QOBJECT(req_json)); > + if (trace_event_get_state(TRACE_HANDLE_QMP_COMMAND)) { > + QString *req_json = qobject_to_json(req); > + trace_handle_qmp_command(mon, qstring_get_str(req_json)); > + qobject_decref(QOBJECT(req_json)); > + } > > rsp = qmp_dispatch(cur_mon->qmp.commands, req);
Conflicts with Eric's commit 8a4613a, but I can resolve that in my tree. The commit message is too terse. "Improve tracing" makes me think of more informative traces, but that's not the case. What exactly is improved here?
