ctf: use unique_ptr to manage ctf_visitor_generate_ir lifetime
[babeltrace.git] / src / plugins / ctf / common / src / metadata / tsdl / ast.hpp
index 962dad553b4f67c1a0ef0bc08ca4e3bb0ceb8ccb..5c1b71c2c7b868fe9ec21947e79e3081d8456c84 100644 (file)
@@ -7,6 +7,8 @@
 #ifndef _CTF_AST_H
 #define _CTF_AST_H
 
+#include <memory>
+
 #include <glib.h>
 #include <stdint.h>
 #include <stdio.h>
@@ -475,8 +477,15 @@ struct ctf_ast
 
 const char *node_type(struct ctf_node *node);
 
+struct ctf_visitor_generate_ir_deleter
+{
+    void operator()(struct ctf_visitor_generate_ir *visitor);
+};
+
 struct ctf_visitor_generate_ir
 {
+    using UP = std::unique_ptr<ctf_visitor_generate_ir, ctf_visitor_generate_ir_deleter>;
+
     explicit ctf_visitor_generate_ir(ctf_metadata_decoder_config decoderConfig,
                                      bt2c::Logger loggerParam) :
         decoder_config {std::move(decoderConfig)},
@@ -505,11 +514,9 @@ struct ctf_visitor_generate_ir
     bt2c::Logger logger;
 };
 
-struct ctf_visitor_generate_ir *
+ctf_visitor_generate_ir::UP
 ctf_visitor_generate_ir_create(const struct ctf_metadata_decoder_config *config);
 
-void ctf_visitor_generate_ir_destroy(struct ctf_visitor_generate_ir *visitor);
-
 bt_trace_class *ctf_visitor_generate_ir_get_ir_trace_class(struct ctf_visitor_generate_ir *visitor);
 
 struct ctf_trace_class *
This page took 0.024782 seconds and 4 git commands to generate.