On Tue, Aug 09, 2016 at 04:31:33PM +0100, Daniel P. Berrange wrote: > +TraceEvent *trace_event_iter_next(TraceEventIter *iter) > +{ > + TraceEvent *ev; > + > + if (iter->event >= TRACE_EVENT_COUNT) { > + return NULL; > + } > + > + ev = &(trace_events[iter->event]); > + > + do { > + iter->event++; > + } while (iter->event < TRACE_EVENT_COUNT && > + iter->pattern && > + !pattern_glob(iter->pattern, > + > trace_event_get_name(&(trace_events[iter->event])))); > + > + return ev; > +}
Shouldn't ev be updated inside the while loop? Otherwise the iterator always returns &trace_events[0] the first time it's called. A doc comment would help clarify the intended semantics of trace_event_iter_next().
signature.asc
Description: PGP signature