X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=lib%2Fiterator.c;h=60e877ec71024d4ccf1a71c7eaea939e35c81331;hp=65429a890e68b6b3cb84fabb421f54c1d3a991dc;hb=db8a45114dfe2ffd2b23ec0517a043b508de41fd;hpb=5d95b2db86d36730ce4b7b5dffcfae32e0c21649 diff --git a/lib/iterator.c b/lib/iterator.c index 65429a89..60e877ec 100644 --- a/lib/iterator.c +++ b/lib/iterator.c @@ -276,6 +276,11 @@ int bt_iter_set_pos(struct bt_iter *iter, const struct bt_iter_pos *iter_pos) return 0; case BT_SEEK_BEGIN: tc = iter->ctx->tc; + heap_free(iter->stream_heap); + ret = heap_init(iter->stream_heap, 0, stream_compare); + if (ret < 0) + goto error; + for (i = 0; i < tc->array->len; i++) { struct ctf_trace *tin; struct trace_descriptor *td_read; @@ -310,6 +315,9 @@ int bt_iter_set_pos(struct bt_iter *iter, const struct bt_iter_pos *iter_pos) if (ret != 0 && ret != EOF) { goto error; } + ret = heap_insert(iter->stream_heap, file_stream); + if (ret) + goto error; } } }