src.ctf.lttng-live: introduce lttng_live_metadata::UP and use it
authorSimon Marchi <simon.marchi@efficios.com>
Tue, 26 Jul 2022 21:36:29 +0000 (17:36 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Tue, 23 Aug 2022 16:06:16 +0000 (12:06 -0400)
Change-Id: I3f902be075b8274485b6ce88b1b7fa1617e79cff
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/8453
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
src/plugins/ctf/lttng-live/lttng-live.cpp
src/plugins/ctf/lttng-live/lttng-live.hpp
src/plugins/ctf/lttng-live/metadata.cpp
src/plugins/ctf/lttng-live/metadata.hpp
src/plugins/ctf/lttng-live/viewer-connection.cpp

index 425e81dda29dd180b9a1e2d2bd4e4da94f0a8c29..c83bd090faa9c2ecf8214c2c1c1b8dc4993e026f 100644 (file)
@@ -153,7 +153,6 @@ static void lttng_live_destroy_trace(struct lttng_live_trace *trace)
     BT_ASSERT(trace->stream_iterators);
     g_ptr_array_free(trace->stream_iterators, TRUE);
 
-    lttng_live_metadata_fini(trace);
     delete trace;
 }
 
index 28bb4de57ff48696c15b38785ada8f4ccdfbae2b..eb1e8efd8a2bc401180cb20732244ec2e5d35ad3 100644 (file)
@@ -123,6 +123,8 @@ struct lttng_live_stream_iterator
 
 struct lttng_live_metadata
 {
+    using UP = std::unique_ptr<lttng_live_metadata>;
+
     explicit lttng_live_metadata(const bt2_common::LogCfg& logCfgParam) noexcept :
         logCfg {logCfgParam}
     {
@@ -177,7 +179,7 @@ struct lttng_live_trace
 
     nonstd::optional<bt2::TraceClass::Shared> trace_class;
 
-    struct lttng_live_metadata *metadata = nullptr;
+    lttng_live_metadata::UP metadata;
 
     const bt_clock_class *clock_class = nullptr;
 
index dd1bb3cdd43ab907ac9a50da9bae2130bd4aa4df..4e3cf1a617306801055d3eb0c04ae34b4328b68d 100644 (file)
@@ -98,7 +98,7 @@ BT_HIDDEN
 enum lttng_live_iterator_status lttng_live_metadata_update(struct lttng_live_trace *trace)
 {
     struct lttng_live_session *session = trace->session;
-    struct lttng_live_metadata *metadata = trace->metadata;
+    struct lttng_live_metadata *metadata = trace->metadata.get();
     std::vector<char> metadataBuf;
     bool keep_receiving;
     bt2_common::FileUP fp;
@@ -261,35 +261,19 @@ int lttng_live_metadata_create_stream(struct lttng_live_session *session, uint64
     cfg.self_comp = session->self_comp;
     cfg.create_trace_class = true;
 
-    lttng_live_metadata *metadata = new lttng_live_metadata {logCfg};
+    lttng_live_metadata::UP metadata = bt2_common::makeUnique<lttng_live_metadata>(logCfg);
     metadata->stream_id = stream_id;
 
     metadata->decoder = ctf_metadata_decoder_create(&cfg);
     if (!metadata->decoder) {
         BT_CLOGE_APPEND_CAUSE("Failed to create CTF metadata decoder");
-        goto error;
+        return -1;
     }
     trace = lttng_live_session_borrow_or_create_trace_by_id(session, ctf_trace_id);
     if (!trace) {
         BT_CLOGE_APPEND_CAUSE("Failed to borrow trace");
-        goto error;
+        return -1;
     }
-    trace->metadata = metadata;
+    trace->metadata = std::move(metadata);
     return 0;
-
-error:
-    delete metadata;
-    return -1;
-}
-
-BT_HIDDEN
-void lttng_live_metadata_fini(struct lttng_live_trace *trace)
-{
-    struct lttng_live_metadata *metadata = trace->metadata;
-
-    if (!metadata) {
-        return;
-    }
-    trace->metadata = NULL;
-    delete metadata;
 }
index 486c91322e2b612bc988afc41cd452f5aebe70ed..2089aa34596ecb2779487c8ba47fa6ae5b23c507 100644 (file)
@@ -17,6 +17,4 @@ int lttng_live_metadata_create_stream(struct lttng_live_session *session, uint64
 
 enum lttng_live_iterator_status lttng_live_metadata_update(struct lttng_live_trace *trace);
 
-void lttng_live_metadata_fini(struct lttng_live_trace *trace);
-
 #endif /* LTTNG_LIVE_METADATA_H */
index 2546d7953f5abb799728acd438279ea70f550b2f..f2f5545124209f5e88677bf9ddf96bca00a4e64b 100644 (file)
@@ -1186,7 +1186,7 @@ lttng_live_get_one_metadata_packet(struct lttng_live_trace *trace, std::vector<c
     std::vector<char> data;
     struct lttng_live_session *session = trace->session;
     struct lttng_live_msg_iter *lttng_live_msg_iter = session->lttng_live_msg_iter;
-    struct lttng_live_metadata *metadata = trace->metadata;
+    struct lttng_live_metadata *metadata = trace->metadata.get();
     struct live_viewer_connection *viewer_connection = lttng_live_msg_iter->viewer_connection;
     const bt2_common::LogCfg& logCfg = trace->logCfg;
     const size_t cmd_buf_len = sizeof(cmd) + sizeof(rq);
This page took 0.027495 seconds and 5 git commands to generate.