Fix: src.ctf.fs: increment packet offset before init of index entry
authorFrancis Deslauriers <francis.deslauriers@efficios.com>
Mon, 10 Jun 2019 16:30:10 +0000 (12:30 -0400)
committerPhilippe Proulx <eeppeliteloop@gmail.com>
Wed, 12 Jun 2019 02:54:04 +0000 (22:54 -0400)
Issue
=====
The `current_packet_offset_bytes` variable is incremented before the
initialization of the current `index_entry` by `init_index_entry()`.
This lead to each entry having the offset of the next entry and the last
entry having a erroneous offset.

Solution
========
Increment the `current_packet_offset_bytes` variable after the
initialization of each entry.

Drawbacks
=========
None.

Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
Change-Id: I7592b2d70f402aa413de97a687bfe4fe1bf1b825
Reviewed-on: https://review.lttng.org/c/babeltrace/+/1409
Tested-by: jenkins
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
plugins/ctf/fs-src/data-stream-file.c

index e89f07193b9d945ef3cf4c0ae989f97c24321a63..99d3b472b58838fa884750bd0f4cbe66cd207d37 100644 (file)
@@ -564,12 +564,6 @@ struct ctf_fs_ds_index *build_index_from_stream_file(
                        goto error;
                }
 
-               current_packet_offset_bytes += current_packet_size_bytes;
-               BT_LOGD("Seeking to next packet: current-packet-offset=%jd, "
-                       "next-packet-offset=%jd",
-                       current_packet_offset_bytes - current_packet_size_bytes,
-                       current_packet_offset_bytes);
-
                index_entry = g_new0(struct ctf_fs_ds_index_entry, 1);
                if (!index_entry) {
                        BT_LOGE_STR("Failed to allocate a new index entry.");
@@ -585,6 +579,12 @@ struct ctf_fs_ds_index *build_index_from_stream_file(
 
                g_ptr_array_add(index->entries, index_entry);
 
+               current_packet_offset_bytes += current_packet_size_bytes;
+               BT_LOGD("Seeking to next packet: current-packet-offset=%jd, "
+                       "next-packet-offset=%jd",
+                       current_packet_offset_bytes - current_packet_size_bytes,
+                       current_packet_offset_bytes);
+
        } while (iter_status == BT_MSG_ITER_STATUS_OK);
 
        if (iter_status != BT_MSG_ITER_STATUS_OK) {
This page took 0.024902 seconds and 4 git commands to generate.