ctf: remove tabs used for indentation
[babeltrace.git] / src / plugins / ctf / common / src / metadata / tsdl / visitor-generate-ir.cpp
index 458177a6d6b9e20eccce56f09a80976f21943670..7900662a847f92604bb1fa252b26e5db6cd53ac8 100644 (file)
@@ -440,20 +440,9 @@ static int ctx_decl_scope_register_variant(struct ctx_decl_scope *scope, const c
     return ctx_decl_scope_register_prefix_alias(scope, _PREFIX_VARIANT, name, &decl->base);
 }
 
-/**
- * Destroys a visitor context.
- *
- * @param ctx  Visitor context to destroy
- */
-static void ctx_destroy(struct ctf_visitor_generate_ir *ctx)
+ctf_visitor_generate_ir::~ctf_visitor_generate_ir()
 {
-    struct ctx_decl_scope *scope;
-
-    if (!ctx) {
-        goto end;
-    }
-
-    scope = ctx->current_scope;
+    struct ctx_decl_scope *scope = this->current_scope;
 
     /*
      * Destroy all scopes, from current one to the root scope.
@@ -465,16 +454,9 @@ static void ctx_destroy(struct ctf_visitor_generate_ir *ctx)
         scope = parent_scope;
     }
 
-    bt_trace_class_put_ref(ctx->trace_class);
-
-    if (ctx->ctf_tc) {
-        ctf_trace_class_destroy(ctx->ctf_tc);
+    if (this->ctf_tc) {
+        ctf_trace_class_destroy(this->ctf_tc);
     }
-
-    delete ctx;
-
-end:
-    return;
 }
 
 /**
@@ -491,11 +473,13 @@ ctx_create(const struct ctf_metadata_decoder_config *decoder_config, const bt2c:
     ctf_visitor_generate_ir::UP ctx {new ctf_visitor_generate_ir {*decoder_config, logger}};
 
     if (decoder_config->self_comp) {
-        ctx->trace_class = bt_trace_class_create(decoder_config->self_comp);
-        if (!ctx->trace_class) {
+        bt_trace_class *trace_class = bt_trace_class_create(decoder_config->self_comp);
+        if (!trace_class) {
             BT_CPPLOGE_APPEND_CAUSE_SPEC(ctx->logger, "Cannot create empty trace class.");
             goto error;
         }
+
+        ctx->trace_class = bt2::TraceClass::Shared::createWithoutRef(trace_class);
     }
 
     ctx->ctf_tc = ctf_trace_class_create();
@@ -1062,8 +1046,8 @@ static int visit_field_class_declarator(struct ctf_visitor_generate_ir *ctx,
 
             /*
              * If we have a pointer declarator, it HAS to
-                        * be present in the field class aliases (else
-                        * fail).
+             * be present in the field class aliases (else
+             * fail).
              */
             qalias =
                 create_class_alias_identifier(ctx, cls_specifier_list, node_field_class_declarator);
@@ -4432,24 +4416,11 @@ end:
     return ctx;
 }
 
-static void ctf_visitor_generate_ir_destroy(struct ctf_visitor_generate_ir *visitor)
-{
-    ctx_destroy(visitor);
-}
-
-void ctf_visitor_generate_ir_deleter::operator()(ctf_visitor_generate_ir *visitor)
-{
-    ctf_visitor_generate_ir_destroy(visitor);
-}
-
-bt_trace_class *ctf_visitor_generate_ir_get_ir_trace_class(struct ctf_visitor_generate_ir *ctx)
+bt2::TraceClass::Shared
+ctf_visitor_generate_ir_get_ir_trace_class(struct ctf_visitor_generate_ir *ctx)
 {
     BT_ASSERT_DBG(ctx);
 
-    if (ctx->trace_class) {
-        bt_trace_class_get_ref(ctx->trace_class);
-    }
-
     return ctx->trace_class;
 }
 
@@ -4683,8 +4654,8 @@ int ctf_visitor_generate_ir_visit_node(struct ctf_visitor_generate_ir *ctx, stru
 
     if (ctx->trace_class) {
         /* Copy new CTF metadata -> new IR metadata */
-        ret =
-            ctf_trace_class_translate(ctx->decoder_config.self_comp, ctx->trace_class, ctx->ctf_tc);
+        ret = ctf_trace_class_translate(ctx->decoder_config.self_comp,
+                                        ctx->trace_class->libObjPtr(), ctx->ctf_tc);
         if (ret) {
             ret = -EINVAL;
             goto end;
This page took 0.042792 seconds and 4 git commands to generate.