* Create a temporary ds_file to read some properties about the data
* stream file.
*/
- ds_file = ctf_fs_ds_file_create(ctf_fs_trace, NULL, path, ctf_fs_trace->logger);
+ ds_file =
+ ctf_fs_ds_file_create(ctf_fs_trace, bt2::Stream::Shared {}, path, ctf_fs_trace->logger);
if (!ds_file) {
goto error;
}
}
while ((basename = g_dir_read_name(dir))) {
- struct ctf_fs_file *file;
-
if (strcmp(basename, CTF_FS_METADATA_FILENAME) == 0) {
/* Ignore the metadata stream. */
BT_CPPLOGI_SPEC(ctf_fs_trace->logger,
}
/* Create the file. */
- file = ctf_fs_file_create(ctf_fs_trace->logger);
+ const auto file = ctf_fs_file_create(ctf_fs_trace->logger);
if (!file) {
BT_CPPLOGE_APPEND_CAUSE_SPEC(
ctf_fs_trace->logger,
if (!g_file_test(file->path->str, G_FILE_TEST_IS_REGULAR)) {
BT_CPPLOGI_SPEC(ctf_fs_trace->logger, "Ignoring non-regular file `{}`",
file->path->str);
- ctf_fs_file_destroy(file);
- file = NULL;
continue;
}
- ret = ctf_fs_file_open(file, "rb");
+ ret = ctf_fs_file_open(file.get(), "rb");
if (ret) {
BT_CPPLOGE_APPEND_CAUSE_SPEC(ctf_fs_trace->logger, "Cannot open stream file `{}`",
file->path->str);
if (file->size == 0) {
/* Skip empty stream. */
BT_CPPLOGI_SPEC(ctf_fs_trace->logger, "Ignoring empty file `{}`", file->path->str);
- ctf_fs_file_destroy(file);
continue;
}
BT_CPPLOGE_APPEND_CAUSE_SPEC(ctf_fs_trace->logger,
"Cannot add stream file `{}` to stream file group",
file->path->str);
- ctf_fs_file_destroy(file);
goto error;
}
-
- ctf_fs_file_destroy(file);
}
goto end;
BT_ASSERT(index_entry);
BT_ASSERT(index_entry->path);
- ds_file = ctf_fs_ds_file_create(ctf_fs_trace, NULL, index_entry->path, ctf_fs_trace->logger);
+ ds_file = ctf_fs_ds_file_create(ctf_fs_trace, bt2::Stream::Shared {}, index_entry->path,
+ ctf_fs_trace->logger);
if (!ds_file) {
BT_CPPLOGE_APPEND_CAUSE_SPEC(ctf_fs_trace->logger, "Failed to create a ctf_fs_ds_file");
ret = -1;
BT_ASSERT(ds_file_group->sc->ir_sc);
BT_ASSERT(ctf_fs_trace->trace);
+ bt_stream *stream;
+
if (ds_file_group->stream_id == UINT64_C(-1)) {
/* No stream ID: use 0 */
- ds_file_group->stream = bt_stream_create_with_id(
- ds_file_group->sc->ir_sc, ctf_fs_trace->trace, ctf_fs_trace->next_stream_id);
+ stream = bt_stream_create_with_id(ds_file_group->sc->ir_sc, ctf_fs_trace->trace,
+ ctf_fs_trace->next_stream_id);
ctf_fs_trace->next_stream_id++;
} else {
/* Specific stream ID */
- ds_file_group->stream = bt_stream_create_with_id(
- ds_file_group->sc->ir_sc, ctf_fs_trace->trace, (uint64_t) ds_file_group->stream_id);
+ stream = bt_stream_create_with_id(ds_file_group->sc->ir_sc, ctf_fs_trace->trace,
+ (uint64_t) ds_file_group->stream_id);
}
- if (!ds_file_group->stream) {
+ if (!stream) {
BT_CPPLOGE_APPEND_CAUSE_SPEC(ctf_fs_trace->logger,
"Cannot create stream for DS file group: "
"addr={}, stream-name=\"{}\"",
goto error;
}
- ret = bt_stream_set_name(ds_file_group->stream, name->str);
+ ds_file_group->stream = bt2::Stream::Shared::createWithoutRef(stream);
+
+ ret = bt_stream_set_name(ds_file_group->stream->libObjPtr(), name->str);
if (ret) {
BT_CPPLOGE_APPEND_CAUSE_SPEC(ctf_fs_trace->logger,
"Cannot set stream's name: "
"addr={}, stream-name=\"{}\"",
- fmt::ptr(ds_file_group->stream), name->str);
+ fmt::ptr(ds_file_group->stream->libObjPtr()), name->str);
goto error;
}