delete entry;
}
-static struct ctf_fs_ds_index_entry *ctf_fs_ds_index_entry_create(const bt2c::DataLen offset,
- const bt2c::DataLen packetSize)
+static ctf_fs_ds_index_entry::UP ctf_fs_ds_index_entry_create(const bt2c::DataLen offset,
+ const bt2c::DataLen packetSize)
{
- ctf_fs_ds_index_entry *entry = new ctf_fs_ds_index_entry {offset, packetSize};
+ ctf_fs_ds_index_entry::UP entry = bt2s::make_unique<ctf_fs_ds_index_entry>(offset, packetSize);
entry->packet_seq_num = UINT64_MAX;
const char *mmap_begin = NULL, *file_pos = NULL;
const struct ctf_packet_index_file_hdr *header = NULL;
ctf_fs_ds_index::UP index;
- struct ctf_fs_ds_index_entry *index_entry = NULL, *prev_index_entry = NULL;
+ ctf_fs_ds_index_entry::UP index_entry;
+ ctf_fs_ds_index_entry *prev_index_entry = NULL;
auto totalPacketsSize = bt2c::DataLen::fromBytes(0);
size_t file_index_entry_size;
size_t file_entry_count;
totalPacketsSize += packetSize;
file_pos += file_index_entry_size;
- prev_index_entry = index_entry;
+ prev_index_entry = index_entry.get();
/* Give ownership of `index_entry` to `index->entries`. */
- g_ptr_array_add(index->entries, index_entry);
- index_entry = NULL;
+ g_ptr_array_add(index->entries, index_entry.release());
}
/* Validate that the index addresses the complete stream. */
return index;
error:
index.reset();
- ctf_fs_ds_index_entry_destroy(index_entry);
goto end;
}
goto error;
}
- const auto index_entry =
- ctf_fs_ds_index_entry_create(currentPacketOffset, currentPacketSize);
+ auto index_entry = ctf_fs_ds_index_entry_create(currentPacketOffset, currentPacketSize);
if (!index_entry) {
BT_CPPLOGE_APPEND_CAUSE_SPEC(ds_file->logger,
"Failed to create a ctf_fs_ds_index_entry.");
/* Set path to stream file. */
index_entry->path = file_info->path.c_str();
- ret = init_index_entry(index_entry, ds_file, &props);
+ ret = init_index_entry(index_entry.get(), ds_file, &props);
if (ret) {
- ctf_fs_ds_index_entry_destroy(index_entry);
goto error;
}
- g_ptr_array_add(index->entries, index_entry);
+ g_ptr_array_add(index->entries, index_entry.release());
currentPacketOffset += currentPacketSize;
BT_CPPLOGD_SPEC(ds_file->logger,