On Thu, Sep 22, 2016 at 02:20:26PM +0200, Lluís Vilanova wrote:
> Daniel P Berrange writes:
>
> > This converts the HMP/QMP monitor API implementations
> > and some internal trace control methods to use the new
> > trace event iterator APIs.
>
> > Reviewed-by: Stefan Hajnoczi <[email protected]>
> > Signed-off-by: Daniel P. Berrange <[email protected]>
> > ---
> > monitor.c | 26 ++++++++++--------
> > trace/control.c | 85
> > +++++++++++++++++++++++++++++++--------------------------
> > trace/qmp.c | 16 +++++++----
> > 3 files changed, 70 insertions(+), 57 deletions(-)
> > diff --git a/trace/qmp.c b/trace/qmp.c
> > index 11d2564..88a907b 100644
> > --- a/trace/qmp.c
> > +++ b/trace/qmp.c
> > @@ -52,8 +52,10 @@ static bool check_events(bool has_vcpu, bool
> > ignore_unavailable, bool is_pattern
> > return true;
> > } else {
> > /* error for unavailable events */
> > - TraceEvent *ev = NULL;
> > - while ((ev = trace_event_pattern(name, ev)) != NULL) {
> > + TraceEventIter iter;
> > + TraceEvent *ev;
> > + trace_event_iter_init(&iter, name);
> > + while ((ev = trace_event_iter_next(&iter)) != NULL) {
> > if (!ignore_unavailable && !trace_event_get_state_static(ev)) {
> > error_setg(errp, "event \"%s\" is disabled",
> > trace_event_get_name(ev));
> > return false;
> > @@ -69,6 +71,7 @@ TraceEventInfoList *qmp_trace_event_get_state(const char
> > *name,
> > {
> > Error *err = NULL;
> > TraceEventInfoList *events = NULL;
> > + TraceEventIter iter;
> > TraceEvent *ev;
> > bool is_pattern = trace_event_is_pattern(name);
> > CPUState *cpu;
> > @@ -86,8 +89,8 @@ TraceEventInfoList *qmp_trace_event_get_state(const char
> > *name,
> > }
>
> > /* Get states (all errors checked above) */
> > - ev = NULL;
> > - while ((ev = trace_event_pattern(name, ev)) != NULL) {
> > + trace_event_iter_init(&iter, is_pattern ? name : NULL);
>
> I think you should always pass name, otherwise a non-pattern name (when the
> user
> wants an exact name match) will return the state of all events.
Hm, yes, don't know why i did that - its clearly wrong.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|