API fix: packet_seek should take an index rather than offset
[babeltrace.git] / lib / iterator.c
index 16b8f93004a910f0975245cf59f9cf83f1d38fc9..398b097bce00bdb7723bcb2ea75c22d399888620 100644 (file)
@@ -115,8 +115,7 @@ static int seek_file_stream_by_timestamp(struct ctf_file_stream *cfs,
                                index->timestamp_end <= timestamp)
                        continue;
 
-               stream_pos->cur_index = i;
-               stream_pos->move_pos_slow(stream_pos, index->offset, SEEK_SET);
+               stream_pos->packet_seek(&stream_pos->parent, i, SEEK_SET);
                while (cfs->parent.timestamp < timestamp) {
                        ret = stream_read_event(cfs);
                        if (ret < 0)
@@ -190,7 +189,6 @@ int bt_iter_set_pos(struct bt_iter *iter, const struct bt_iter_pos *iter_pos)
                                i++) {
                        struct stream_saved_pos *saved_pos;
                        struct ctf_stream_pos *stream_pos;
-                       struct packet_index *index;
                        struct ctf_stream *stream;
 
                        saved_pos = &g_array_index(
@@ -198,17 +196,13 @@ int bt_iter_set_pos(struct bt_iter *iter, const struct bt_iter_pos *iter_pos)
                                        struct stream_saved_pos, i);
                        stream = &saved_pos->file_stream->parent;
                        stream_pos = &saved_pos->file_stream->pos;
-                       index = &g_array_index(stream_pos->packet_index,
-                                       struct packet_index,
-                                       saved_pos->cur_index);
 
-                       stream_pos->cur_index = saved_pos->cur_index;
-                       stream_pos->move_pos_slow(stream_pos, index->offset,
-                                       SEEK_SET);
+                       stream_pos->packet_seek(&stream_pos->parent,
+                                       saved_pos->cur_index, SEEK_SET);
 
                        /*
                         * the timestamp needs to be restored after
-                        * move_pos_slow, because this function resets
+                        * packet_seek, because this function resets
                         * the timestamp to the beginning of the packet
                         */
                        stream->timestamp = saved_pos->current_timestamp;
@@ -386,7 +380,8 @@ static int babeltrace_filestream_seek(struct ctf_file_stream *file_stream,
                 */
                break;
        case BT_SEEK_BEGIN:
-               file_stream->pos.move_pos_slow(&file_stream->pos, 0, SEEK_SET);
+               file_stream->pos.packet_seek(&file_stream->pos.parent,
+                               0, SEEK_SET);
                ret = stream_read_event(file_stream);
                break;
        case BT_SEEK_TIME:
This page took 0.023409 seconds and 4 git commands to generate.