lib: graph API: return borrowed references when adding to an object
[babeltrace.git] / src / cli / babeltrace2.c
index ad211fa24f2b47e2d4d794a8b7d60f26f45c5442..d065075ee6e384d8bf9fda3d9100c7cebfe0af63 100644 (file)
@@ -146,14 +146,13 @@ const void *find_component_class_from_plugin(const char *plugin_name,
        BT_LOGI("Finding component class: plugin-name=\"%s\", "
                "comp-cls-name=\"%s\"", plugin_name, comp_class_name);
 
-       plugin = find_loaded_plugin(plugin_name);
+       plugin = borrow_loaded_plugin_by_name(plugin_name);
        if (!plugin) {
                goto end;
        }
 
        comp_class = plugin_borrow_comp_cls_func(plugin, comp_class_name);
        bt_object_get_ref(comp_class);
-       BT_PLUGIN_PUT_REF_AND_RESET(plugin);
 
 end:
        if (comp_class) {
@@ -726,7 +725,7 @@ enum bt_cmd_status cmd_help(struct bt_config *cfg)
        const bt_plugin *plugin = NULL;
        const bt_component_class *needed_comp_cls = NULL;
 
-       plugin = find_loaded_plugin(cfg->cmd_data.help.cfg_component->plugin_name->str);
+       plugin = borrow_loaded_plugin_by_name(cfg->cmd_data.help.cfg_component->plugin_name->str);
        if (!plugin) {
                BT_CLI_LOGE_APPEND_CAUSE(
                        "Cannot find plugin: plugin-name=\"%s\"",
@@ -780,7 +779,6 @@ error:
 
 end:
        bt_component_class_put_ref(needed_comp_cls);
-       bt_plugin_put_ref(plugin);
        return cmd_status;
 }
 
@@ -854,7 +852,7 @@ enum bt_cmd_status cmd_list_plugins(struct bt_config *cfg)
        }
 
        for (i = 0; i < plugins_count; i++) {
-               const bt_plugin *plugin = borrow_loaded_plugin(i);
+               const bt_plugin *plugin = borrow_loaded_plugin_by_index(i);
 
                component_classes_count +=
                        bt_plugin_get_source_component_class_count(plugin) +
@@ -871,7 +869,7 @@ enum bt_cmd_status cmd_list_plugins(struct bt_config *cfg)
                bt_common_color_reset());
 
        for (i = 0; i < plugins_count; i++) {
-               const bt_plugin *plugin = borrow_loaded_plugin(i);
+               const bt_plugin *plugin = borrow_loaded_plugin_by_index(i);
 
                printf("\n");
                print_plugin_info(plugin);
@@ -1444,6 +1442,7 @@ int cmd_run_ctx_connect_upstream_port_to_downstream_component(
                                ctx->graph, trimmer_class, trimmer_name,
                                trimmer_params, ctx->cfg->log_level,
                                &trimmer);
+                       bt_component_filter_get_ref(trimmer);
                        free(trimmer_name);
                        if (add_comp_status !=
                                        BT_GRAPH_ADD_COMPONENT_STATUS_OK) {
@@ -1899,7 +1898,7 @@ int cmd_run_ctx_init(struct cmd_run_ctx *ctx, struct bt_config *cfg)
 
        bt_graph_add_interrupter(ctx->graph, the_interrupter);
        add_listener_status = bt_graph_add_source_component_output_port_added_listener(
-               ctx->graph, graph_source_output_port_added_listener, NULL, ctx,
+               ctx->graph, graph_source_output_port_added_listener, ctx,
                NULL);
        if (add_listener_status != BT_GRAPH_ADD_LISTENER_STATUS_OK) {
                BT_CLI_LOGE_APPEND_CAUSE(
@@ -1908,7 +1907,7 @@ int cmd_run_ctx_init(struct cmd_run_ctx *ctx, struct bt_config *cfg)
        }
 
        add_listener_status = bt_graph_add_filter_component_output_port_added_listener(
-               ctx->graph, graph_filter_output_port_added_listener, NULL, ctx,
+               ctx->graph, graph_filter_output_port_added_listener, ctx,
                NULL);
        if (add_listener_status != BT_GRAPH_ADD_LISTENER_STATUS_OK) {
                BT_CLI_LOGE_APPEND_CAUSE(
@@ -2272,18 +2271,21 @@ int cmd_run_ctx_create_components_from_config_components(
                                comp_cls, cfg_comp->instance_name->str,
                                cfg_comp->params, cfg_comp->log_level,
                                (void *) &comp);
+                       bt_component_source_get_ref(comp);
                        break;
                case BT_COMPONENT_CLASS_TYPE_FILTER:
                        ret = bt_graph_add_filter_component(ctx->graph,
                                comp_cls, cfg_comp->instance_name->str,
                                cfg_comp->params, cfg_comp->log_level,
                                (void *) &comp);
+                       bt_component_filter_get_ref(comp);
                        break;
                case BT_COMPONENT_CLASS_TYPE_SINK:
                        ret = bt_graph_add_sink_component(ctx->graph,
                                comp_cls, cfg_comp->instance_name->str,
                                cfg_comp->params, cfg_comp->log_level,
                                (void *) &comp);
+                       bt_component_sink_get_ref(comp);
                        break;
                default:
                        bt_common_abort();
This page took 0.025608 seconds and 4 git commands to generate.