From cee8a4666d8b3f3733b7c1488a42e2bd9fd220ee Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Tue, 5 Dec 2023 04:44:06 +0000 Subject: [PATCH] src.ctf.fs: make ctf_fs_trace::path an std::string Change-Id: I9938c37f4effca7e83ed2e495feb5dd596d2320e Signed-off-by: Simon Marchi Reviewed-on: https://review.lttng.org/c/babeltrace/+/8281 Reviewed-by: Philippe Proulx Reviewed-on: https://review.lttng.org/c/babeltrace/+/12319 Tested-by: jenkins --- src/plugins/ctf/fs-src/fs.cpp | 34 +++++++++++------------------ src/plugins/ctf/fs-src/fs.hpp | 3 +-- src/plugins/ctf/fs-src/metadata.cpp | 4 ++-- src/plugins/ctf/fs-src/query.cpp | 4 ++-- 4 files changed, 18 insertions(+), 27 deletions(-) diff --git a/src/plugins/ctf/fs-src/fs.cpp b/src/plugins/ctf/fs-src/fs.cpp index bd0e24b8..bb5d52da 100644 --- a/src/plugins/ctf/fs-src/fs.cpp +++ b/src/plugins/ctf/fs-src/fs.cpp @@ -261,10 +261,6 @@ static void ctf_fs_trace_destroy(struct ctf_fs_trace *ctf_fs_trace) return; } - if (ctf_fs_trace->path) { - g_string_free(ctf_fs_trace->path, TRUE); - } - if (ctf_fs_trace->metadata) { ctf_fs_metadata_fini(ctf_fs_trace->metadata); delete ctf_fs_trace->metadata; @@ -309,7 +305,7 @@ bt2c::GCharUP ctf_fs_make_port_name(struct ctf_fs_ds_file_group *ds_file_group) bt_uuid_to_str(ds_file_group->ctf_fs_trace->metadata->tc->uuid, uuid_str); g_string_assign(name, uuid_str); } else { - g_string_assign(name, ds_file_group->ctf_fs_trace->path->str); + g_string_assign(name, ds_file_group->ctf_fs_trace->path.c_str()); } /* @@ -614,11 +610,11 @@ static int create_ds_file_groups(struct ctf_fs_trace *ctf_fs_trace) GDir *dir = NULL; /* Check each file in the path directory, except specific ones */ - dir = g_dir_open(ctf_fs_trace->path->str, 0, &error); + dir = g_dir_open(ctf_fs_trace->path.c_str(), 0, &error); if (!dir) { BT_CPPLOGE_APPEND_CAUSE_SPEC(ctf_fs_trace->logger, - "Cannot open directory `{}`: {} (code {})", - ctf_fs_trace->path->str, error->message, error->code); + "Cannot open directory `{}`: {} (code {})", ctf_fs_trace->path, + error->message, error->code); goto error; } @@ -627,14 +623,14 @@ static int create_ds_file_groups(struct ctf_fs_trace *ctf_fs_trace) /* Ignore the metadata stream. */ BT_CPPLOGI_SPEC(ctf_fs_trace->logger, "Ignoring metadata file `{}" G_DIR_SEPARATOR_S "{}`", - ctf_fs_trace->path->str, basename); + ctf_fs_trace->path, basename); continue; } if (basename[0] == '.') { BT_CPPLOGI_SPEC(ctf_fs_trace->logger, - "Ignoring hidden file `{}" G_DIR_SEPARATOR_S "{}`", - ctf_fs_trace->path->str, basename); + "Ignoring hidden file `{}" G_DIR_SEPARATOR_S "{}`", ctf_fs_trace->path, + basename); continue; } @@ -644,12 +640,12 @@ static int create_ds_file_groups(struct ctf_fs_trace *ctf_fs_trace) BT_CPPLOGE_APPEND_CAUSE_SPEC( ctf_fs_trace->logger, "Cannot create stream file object for file `{}" G_DIR_SEPARATOR_S "{}`", - ctf_fs_trace->path->str, basename); + ctf_fs_trace->path, basename); goto error; } /* Create full path string. */ - file->path = fmt::format("{}" G_DIR_SEPARATOR_S "{}", ctf_fs_trace->path->str, basename); + file->path = fmt::format("{}" G_DIR_SEPARATOR_S "{}", ctf_fs_trace->path, basename); if (!g_file_test(file->path.c_str(), G_FILE_TEST_IS_REGULAR)) { BT_CPPLOGI_SPEC(ctf_fs_trace->logger, "Ignoring non-regular file `{}`", file->path); @@ -747,13 +743,9 @@ static ctf_fs_trace::UP ctf_fs_trace_create(const char *path, const char *name, const bt2c::Logger& parentLogger) { int ret; - ctf_fs_trace::UP ctf_fs_trace {new struct ctf_fs_trace(parentLogger)}; - ctf_fs_trace->path = g_string_new(path); - if (!ctf_fs_trace->path) { - goto error; - } + ctf_fs_trace->path = path; ctf_fs_trace->metadata = new ctf_fs_metadata; ctf_fs_metadata_init(ctf_fs_trace->metadata); @@ -1677,7 +1669,7 @@ int ctf_fs_component_create_ctf_fs_trace(struct ctf_fs_component *ctf_fs, BT_CPPLOGE_APPEND_CAUSE_SPEC( ctf_fs->logger, "Multiple traces given, but a trace does not have a UUID: path={}", - this_trace->path->str); + this_trace->path); goto error; } @@ -1692,8 +1684,8 @@ int ctf_fs_component_create_ctf_fs_trace(struct ctf_fs_component *ctf_fs, "Multiple traces given, but UUIDs don't match: " "first-trace-uuid={}, first-trace-path={}, " "trace-uuid={}, trace-path={}", - first_trace_uuid_str, first_trace->path->str, - this_trace_uuid_str, this_trace->path->str); + first_trace_uuid_str, first_trace->path, + this_trace_uuid_str, this_trace->path); goto error; } } diff --git a/src/plugins/ctf/fs-src/fs.hpp b/src/plugins/ctf/fs-src/fs.hpp index 0607d3f2..3762fcde 100644 --- a/src/plugins/ctf/fs-src/fs.hpp +++ b/src/plugins/ctf/fs-src/fs.hpp @@ -62,8 +62,7 @@ struct ctf_fs_trace std::vector ds_file_groups; - /* Owned by this */ - GString *path = nullptr; + std::string path; /* Next automatic stream ID when not provided by packet header */ uint64_t next_stream_id = 0; diff --git a/src/plugins/ctf/fs-src/metadata.cpp b/src/plugins/ctf/fs-src/metadata.cpp index ec60a6a4..5ca3b799 100644 --- a/src/plugins/ctf/fs-src/metadata.cpp +++ b/src/plugins/ctf/fs-src/metadata.cpp @@ -35,7 +35,7 @@ end: return fp; } -static ctf_fs_file::UP get_file(const char *trace_path, const bt2c::Logger& logger) +static ctf_fs_file::UP get_file(const bt2c::CStringView trace_path, const bt2c::Logger& logger) { auto file = ctf_fs_file_create(logger); @@ -68,7 +68,7 @@ int ctf_fs_metadata_set_trace_class(bt_self_component *self_comp, struct ctf_fs_ decoder_config.clkClsCfg = clkClsCfg; decoder_config.create_trace_class = true; - const auto file = get_file(ctf_fs_trace->path->str, ctf_fs_trace->logger); + const auto file = get_file(ctf_fs_trace->path, ctf_fs_trace->logger); if (!file) { BT_CPPLOGE_SPEC(ctf_fs_trace->logger, "Cannot create metadata file object."); ret = -1; diff --git a/src/plugins/ctf/fs-src/query.cpp b/src/plugins/ctf/fs-src/query.cpp index 2a6057db..9245ce38 100644 --- a/src/plugins/ctf/fs-src/query.cpp +++ b/src/plugins/ctf/fs-src/query.cpp @@ -158,8 +158,8 @@ static void populate_trace_info(const struct ctf_fs_trace *trace, const bt2::Map { /* Add trace range info only if it contains streams. */ if (trace->ds_file_groups.empty()) { - BT_CPPLOGE_APPEND_CAUSE_AND_THROW_SPEC( - logger, bt2::Error, "Trace has no streams: trace-path={}", trace->path->str); + BT_CPPLOGE_APPEND_CAUSE_AND_THROW_SPEC(logger, bt2::Error, + "Trace has no streams: trace-path={}", trace->path); } const auto fileGroups = traceInfo.insertEmptyArray("stream-infos"); -- 2.34.1