X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=lib%2Fiterator.c;h=f79a1d24c222344c8ff890161af2fcb258c2d2d2;hp=3dbe878846ab3699af938d2e3a98c202eca8d7b3;hb=7344374e79c2d0f84e6252feb4ea3539c844bf30;hpb=00607d510e7568c59206104f424952fa3ca0063c diff --git a/lib/iterator.c b/lib/iterator.c index 3dbe8788..f79a1d24 100644 --- a/lib/iterator.c +++ b/lib/iterator.c @@ -177,7 +177,7 @@ int bt_iter_set_pos(struct bt_iter *iter, const struct bt_iter_pos *iter_pos) switch (iter_pos->type) { case BT_SEEK_RESTORE: if (!iter_pos->u.restore) - goto error_arg; + return -EINVAL; heap_free(iter->stream_heap); ret = heap_init(iter->stream_heap, 0, stream_compare); @@ -225,12 +225,11 @@ int bt_iter_set_pos(struct bt_iter *iter, const struct bt_iter_pos *iter_pos) if (ret) goto error; } + case BT_SEEK_BEGIN: + /* fall-through to seek time of 0 */ case BT_SEEK_TIME: tc = iter->ctx->tc; - if (!iter_pos->u.seek_time) - goto error_arg; - heap_free(iter->stream_heap); ret = heap_init(iter->stream_heap, 0, stream_compare); if (ret < 0) @@ -253,13 +252,11 @@ int bt_iter_set_pos(struct bt_iter *iter, const struct bt_iter_pos *iter_pos) return 0; default: /* not implemented */ - goto error_arg; + return -EINVAL; } return 0; -error_arg: - ret = -EINVAL; error: heap_free(iter->stream_heap); if (heap_init(iter->stream_heap, 0, stream_compare) < 0) {