src.ctf.lttng-live: make lttng_live_trace::trace_class a bt2::TraceClass::Shared
authorSimon Marchi <simon.marchi@efficios.com>
Wed, 6 Dec 2023 17:20:21 +0000 (17:20 +0000)
committerSimon Marchi <simon.marchi@efficios.com>
Wed, 17 Apr 2024 17:57:53 +0000 (13:57 -0400)
Use the C++ wrapper to hold the reference to the trace class.

Note that the existing comment said it is a weak reference, but the code
shows otherwise.

Change-Id: Ic486a65ab40953c5d6a3ddb7d057d2caa85cf1c0
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/8415
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/12351
Tested-by: jenkins <jenkins@lttng.org>
src/plugins/ctf/lttng-live/lttng-live.cpp
src/plugins/ctf/lttng-live/lttng-live.hpp
src/plugins/ctf/lttng-live/metadata.cpp

index 7e32c379e9a343d5fc6156e1c675c8b687fda0ba..9bfc2f6f9c66ff2b4040b8867d76e82d0652af9a 100644 (file)
@@ -94,7 +94,6 @@ static void lttng_live_destroy_trace(struct lttng_live_trace *trace)
     g_ptr_array_free(trace->stream_iterators, TRUE);
 
     BT_TRACE_PUT_REF_AND_RESET(trace->trace);
-    BT_TRACE_CLASS_PUT_REF_AND_RESET(trace->trace_class);
 
     lttng_live_metadata_fini(trace);
     delete trace;
@@ -109,7 +108,6 @@ static struct lttng_live_trace *lttng_live_create_trace(struct lttng_live_sessio
     lttng_live_trace *trace = new lttng_live_trace {session->logger};
     trace->session = session;
     trace->id = trace_id;
-    trace->trace_class = NULL;
     trace->trace = NULL;
     trace->stream_iterators =
         g_ptr_array_new_with_free_func((GDestroyNotify) lttng_live_stream_iterator_destroy);
index 87c80e533d999b2fd60c0a0c3a8a48f676ddf374..d6c01ad3e88fa29d9da42fc8a68d33c7140f331b 100644 (file)
@@ -193,8 +193,7 @@ struct lttng_live_trace
     /* Owned by this. */
     bt_trace *trace = nullptr;
 
-    /* Weak reference. */
-    bt_trace_class *trace_class = nullptr;
+    bt2::TraceClass::Shared trace_class;
 
     struct lttng_live_metadata *metadata = nullptr;
 
index a826c253429ee1c6be5a023aa8cc8ba95232d42c..49bdf6888c8bd4a9a25614d9445a26e94dcc273e 100644 (file)
@@ -208,10 +208,8 @@ enum lttng_live_iterator_status lttng_live_metadata_update(struct lttng_live_tra
             struct ctf_trace_class *tc =
                 ctf_metadata_decoder_borrow_ctf_trace_class(metadata->decoder.get());
 
-            trace->trace_class = ctf_metadata_decoder_get_ir_trace_class(metadata->decoder.get())
-                                     .release()
-                                     .libObjPtr();
-            trace->trace = bt_trace_create(trace->trace_class);
+            trace->trace_class = ctf_metadata_decoder_get_ir_trace_class(metadata->decoder.get());
+            trace->trace = bt_trace_create(trace->trace_class->libObjPtr());
             if (!trace->trace) {
                 BT_CPPLOGE_APPEND_CAUSE_SPEC(metadata->logger, "Failed to create bt_trace");
                 goto error;
@@ -221,12 +219,12 @@ enum lttng_live_iterator_status lttng_live_metadata_update(struct lttng_live_tra
                                              "Failed to configure ctf trace class");
                 goto error;
             }
-            if (!stream_classes_all_have_default_clock_class(trace->trace_class,
+            if (!stream_classes_all_have_default_clock_class(trace->trace_class->libObjPtr(),
                                                              metadata->logger)) {
                 /* Error logged in function. */
                 goto error;
             }
-            trace->clock_class = borrow_any_clock_class(trace->trace_class);
+            trace->clock_class = borrow_any_clock_class(trace->trace_class->libObjPtr());
         }
 
         /* The metadata was updated successfully. */
This page took 0.026648 seconds and 4 git commands to generate.