ctf_fs_ds_file_destroy(data->file);
/* Create the new file. */
- data->file =
- ctf_fs_ds_file_create(data->ds_file_group->ctf_fs_trace, data->ds_file_group->stream,
- index_entry->path, data->logger);
+ data->file = ctf_fs_ds_file_create(data->ds_file_group->ctf_fs_trace,
+ data->ds_file_group->stream->libObjPtr(),
+ index_entry->path, data->logger);
if (!data->file) {
BT_CPPLOGE_APPEND_CAUSE_SPEC(data->logger, "failed to create ctf_fs_ds_file.");
status = CTF_MSG_ITER_MEDIUM_STATUS_ERROR;
return;
}
- bt_stream_put_ref(ds_file_group->stream);
delete ds_file_group;
}
#include <babeltrace2/babeltrace.h>
+#include "cpp-common/bt2/trace-ir.hpp"
#include "cpp-common/bt2c/data-len.hpp"
#include "cpp-common/bt2c/logging.hpp"
/* Owned by this */
struct ctf_stream_class *sc = nullptr;
- /* Owned by this */
- bt_stream *stream = nullptr;
+ bt2::Stream::Shared stream;
/* Stream (instance) ID; -1ULL means none */
uint64_t stream_id = 0;
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;
}