X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fiterator.c;h=b205a93764ddc1940db73a35365977a586314b7b;hb=38380786954798ace38594b1e92905aeba4da55d;hp=411b377ecf8cda2e6a1ec2ada151e0ed3d944eae;hpb=fef3bf22431390dae389d378b7709366b158b83d;p=babeltrace.git diff --git a/lib/iterator.c b/lib/iterator.c index 411b377e..b205a937 100644 --- a/lib/iterator.c +++ b/lib/iterator.c @@ -253,7 +253,7 @@ static int find_max_timestamp_ctf_stream_class( struct ctf_file_stream **cfsp, uint64_t *max_timestamp) { - int ret = EOF, i; + int ret = EOF, i, found = 0; for (i = 0; i < stream_class->streams->len; i++) { struct ctf_stream_definition *stream; @@ -272,9 +272,13 @@ static int find_max_timestamp_ctf_stream_class( if (current_max_ts >= *max_timestamp) { *max_timestamp = current_max_ts; *cfsp = cfs; + found = 1; } } assert(ret >= 0 || ret == EOF); + if (found) { + return 0; + } return ret; } @@ -471,6 +475,10 @@ int bt_iter_set_pos(struct bt_iter *iter, const struct bt_iter_pos *iter_pos) if (ret != 0 && ret != EOF) { goto error; } + if (ret == EOF) { + /* Do not add EOF streams */ + continue; + } ret = heap_insert(iter->stream_heap, file_stream); if (ret) goto error;