X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=lib%2Fiterator.c;h=16b8f93004a910f0975245cf59f9cf83f1d38fc9;hp=3a288a06e07ede3efe2893a0762bcac8bbbe67c2;hb=aacd0c695fce3e2bcba4a1c6acd4c82346311b3e;hpb=dc81689e3a3b6facb2ffe89f0a0353a8eb0caeec diff --git a/lib/iterator.c b/lib/iterator.c index 3a288a06..16b8f930 100644 --- a/lib/iterator.c +++ b/lib/iterator.c @@ -27,6 +27,7 @@ #include #include #include +#include #include struct stream_saved_pos { @@ -577,27 +578,27 @@ end: return ret; } -int bt_iter_read_event(struct bt_iter *iter, - struct ctf_stream **stream, - struct ctf_stream_event **event) +struct bt_ctf_event *bt_iter_read_ctf_event(struct bt_iter *iter) { struct ctf_file_stream *file_stream; - int ret = 0; + struct bt_ctf_event *ret = &iter->current_ctf_event; file_stream = heap_maximum(iter->stream_heap); if (!file_stream) { /* end of file for all streams */ - ret = EOF; - goto end; + goto stop; } - *stream = &file_stream->parent; - *event = g_ptr_array_index((*stream)->events_by_id, (*stream)->event_id); + ret->stream = &file_stream->parent; + ret->event = g_ptr_array_index(ret->stream->events_by_id, + ret->stream->event_id); - if ((*stream)->stream_id > iter->callbacks->len) + if (ret->stream->stream_id > iter->callbacks->len) goto end; - process_callbacks(iter, *stream); + process_callbacks(iter, ret->stream); end: return ret; +stop: + return NULL; }