X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=cli%2Fbabeltrace-cfg-cli-args.c;h=f501ebcdcf26db8811e00a35c3b5bf2e8d3aa138;hb=a84bd629b404e83f032c9303a96c5a914fcf3a95;hp=6182f1a74b321e7fa94cf0d8bc01bca597400ae1;hpb=5bd4da003739c77837ba154f2b80e363fa7b1aab;p=deliverable%2Fbabeltrace.git diff --git a/cli/babeltrace-cfg-cli-args.c b/cli/babeltrace-cfg-cli-args.c index 6182f1a74..f501ebcdc 100644 --- a/cli/babeltrace-cfg-cli-args.c +++ b/cli/babeltrace-cfg-cli-args.c @@ -34,7 +34,6 @@ #include #include #include -#include #include #include #include @@ -84,7 +83,7 @@ struct ini_parsing_state { GScanner *scanner; /* Output map value object being filled (owned by this) */ - struct bt_value *params; + bt_value *params; /* Next expected FSM state */ enum ini_parsing_fsm_state expecting; @@ -121,8 +120,8 @@ struct text_legacy_opts { GString *output; GString *dbg_info_dir; GString *dbg_info_target_prefix; - struct bt_value *names; - struct bt_value *fields; + const bt_value *names; + const bt_value *fields; /* Flags */ bool no_delta; @@ -194,7 +193,7 @@ int ini_handle_state(struct ini_parsing_state *state) { int ret = 0; GTokenType token_type; - struct bt_value *value = NULL; + bt_value *value = NULL; token_type = g_scanner_get_next_token(state->scanner); if (token_type == G_TOKEN_EOF) { @@ -241,7 +240,8 @@ int ini_handle_state(struct ini_parsing_state *state) goto error; } - if (bt_value_map_has_key(state->params, state->last_map_key)) { + if (bt_value_map_has_entry(state->params, + state->last_map_key)) { g_string_append_printf(state->ini_error, "Duplicate parameter key: `%s`\n", state->last_map_key); @@ -292,19 +292,16 @@ int ini_handle_state(struct ini_parsing_state *state) goto error; } - value = bt_value_integer_create_init( - (int64_t) int_val); + value = bt_value_integer_create_init((int64_t)int_val); break; } case G_TOKEN_FLOAT: /* Positive floating point number */ - value = bt_value_float_create_init( - state->scanner->value.v_float); + value = bt_value_real_create_init(state->scanner->value.v_float); break; case G_TOKEN_STRING: /* Quoted string */ - value = bt_value_string_create_init( - state->scanner->value.v_string); + value = bt_value_string_create_init(state->scanner->value.v_string); break; case G_TOKEN_IDENTIFIER: { @@ -366,14 +363,12 @@ int ini_handle_state(struct ini_parsing_state *state) goto error; } - value = bt_value_integer_create_init( - -((int64_t) int_val)); + value = bt_value_integer_create_init(-((int64_t)int_val)); break; } case G_TOKEN_FLOAT: /* Negative floating point number */ - value = bt_value_float_create_init( - -state->scanner->value.v_float); + value = bt_value_real_create_init(-state->scanner->value.v_float); break; default: /* Unset value variable will trigger the error */ @@ -414,7 +409,7 @@ error: success: if (value) { - if (bt_value_map_insert(state->params, + if (bt_value_map_insert_entry(state->params, state->last_map_key, value)) { /* Only override return value on error */ ret = -1; @@ -422,7 +417,7 @@ success: } end: - BT_PUT(value); + BT_VALUE_PUT_REF_AND_RESET(value); return ret; } @@ -432,7 +427,8 @@ end: * Return value is owned by the caller. */ static -struct bt_value *bt_value_from_ini(const char *arg, GString *ini_error) +bt_value *bt_value_from_ini(const char *arg, + GString *ini_error) { /* Lexical scanner configuration */ GScannerConfig scanner_config = { @@ -539,7 +535,7 @@ struct bt_value *bt_value_from_ini(const char *arg, GString *ini_error) goto end; error: - BT_PUT(state.params); + BT_VALUE_PUT_REF_AND_RESET(state.params); end: if (state.scanner) { @@ -557,9 +553,9 @@ end: * Return value is owned by the caller. */ static -struct bt_value *bt_value_from_arg(const char *arg) +bt_value *bt_value_from_arg(const char *arg) { - struct bt_value *params = NULL; + bt_value *params = NULL; GString *ini_error = NULL; ini_error = g_string_new(NULL); @@ -579,6 +575,7 @@ end: if (ini_error) { g_string_free(ini_error, TRUE); } + return params; } @@ -599,7 +596,7 @@ end: */ static void plugin_comp_cls_names(const char *arg, char **name, char **plugin, - char **comp_cls, enum bt_component_class_type *comp_cls_type) + char **comp_cls, bt_component_class_type *comp_cls_type) { const char *at = arg; GString *gs_name = NULL; @@ -741,7 +738,7 @@ void print_version(void) * Destroys a component configuration. */ static -void bt_config_component_destroy(struct bt_object *obj) +void bt_config_component_destroy(bt_object *obj) { struct bt_config_component *bt_config_component = container_of(obj, struct bt_config_component, base); @@ -762,7 +759,7 @@ void bt_config_component_destroy(struct bt_object *obj) g_string_free(bt_config_component->instance_name, TRUE); } - BT_PUT(bt_config_component->params); + BT_VALUE_PUT_REF_AND_RESET(bt_config_component->params); g_free(bt_config_component); end: @@ -778,7 +775,7 @@ end: */ static struct bt_config_component *bt_config_component_create( - enum bt_component_class_type type, + bt_component_class_type type, const char *plugin_name, const char *comp_cls_name) { struct bt_config_component *cfg_component = NULL; @@ -789,7 +786,8 @@ struct bt_config_component *bt_config_component_create( goto error; } - bt_object_init(cfg_component, bt_config_component_destroy); + bt_object_init_shared(&cfg_component->base, + bt_config_component_destroy); cfg_component->type = type; cfg_component->plugin_name = g_string_new(plugin_name); if (!cfg_component->plugin_name) { @@ -819,7 +817,7 @@ struct bt_config_component *bt_config_component_create( goto end; error: - BT_PUT(cfg_component); + BT_OBJECT_PUT_REF_AND_RESET(cfg_component); end: return cfg_component; @@ -836,7 +834,7 @@ struct bt_config_component *bt_config_component_from_arg(const char *arg) char *name = NULL; char *plugin_name = NULL; char *comp_cls_name = NULL; - enum bt_component_class_type type; + bt_component_class_type type; plugin_comp_cls_names(arg, &name, &plugin_name, &comp_cls_name, &type); if (!plugin_name || !comp_cls_name) { @@ -855,7 +853,7 @@ struct bt_config_component *bt_config_component_from_arg(const char *arg) goto end; error: - BT_PUT(cfg_comp); + BT_OBJECT_PUT_REF_AND_RESET(cfg_comp); end: g_free(name); @@ -868,7 +866,7 @@ end: * Destroys a configuration. */ static -void bt_config_destroy(struct bt_object *obj) +void bt_config_destroy(bt_object *obj) { struct bt_config *cfg = container_of(obj, struct bt_config, base); @@ -877,7 +875,7 @@ void bt_config_destroy(struct bt_object *obj) goto end; } - BT_PUT(cfg->plugin_paths); + BT_VALUE_PUT_REF_AND_RESET(cfg->plugin_paths); switch (cfg->command) { case BT_CONFIG_COMMAND_RUN: @@ -901,10 +899,10 @@ void bt_config_destroy(struct bt_object *obj) case BT_CONFIG_COMMAND_LIST_PLUGINS: break; case BT_CONFIG_COMMAND_HELP: - BT_PUT(cfg->cmd_data.help.cfg_component); + BT_OBJECT_PUT_REF_AND_RESET(cfg->cmd_data.help.cfg_component); break; case BT_CONFIG_COMMAND_QUERY: - BT_PUT(cfg->cmd_data.query.cfg_component); + BT_OBJECT_PUT_REF_AND_RESET(cfg->cmd_data.query.cfg_component); if (cfg->cmd_data.query.object) { g_string_free(cfg->cmd_data.query.object, TRUE); @@ -1009,10 +1007,10 @@ GScanner *create_csv_identifiers_scanner(void) * Return value is owned by the caller. */ static -struct bt_value *names_from_arg(const char *arg) +bt_value *names_from_arg(const char *arg) { GScanner *scanner = NULL; - struct bt_value *names = NULL; + bt_value *names = NULL; bool found_all = false, found_none = false, found_item = false; names = bt_value_array_create(); @@ -1040,33 +1038,33 @@ struct bt_value *names_from_arg(const char *arg) !strcmp(identifier, "args") || !strcmp(identifier, "arg")) { found_item = true; - if (bt_value_array_append_string(names, + if (bt_value_array_append_string_element(names, "payload")) { goto error; } } else if (!strcmp(identifier, "context") || !strcmp(identifier, "ctx")) { found_item = true; - if (bt_value_array_append_string(names, + if (bt_value_array_append_string_element(names, "context")) { goto error; } } else if (!strcmp(identifier, "scope") || !strcmp(identifier, "header")) { found_item = true; - if (bt_value_array_append_string(names, + if (bt_value_array_append_string_element(names, identifier)) { goto error; } } else if (!strcmp(identifier, "all")) { found_all = true; - if (bt_value_array_append_string(names, + if (bt_value_array_append_string_element(names, identifier)) { goto error; } } else if (!strcmp(identifier, "none")) { found_none = true; - if (bt_value_array_append_string(names, + if (bt_value_array_append_string_element(names, identifier)) { goto error; } @@ -1096,7 +1094,7 @@ end: * least one item is specified. */ if (found_item && !found_none && !found_all) { - if (bt_value_array_append_string(names, "none")) { + if (bt_value_array_append_string_element(names, "none")) { goto error; } } @@ -1106,7 +1104,7 @@ end: return names; error: - BT_PUT(names); + BT_VALUE_PUT_REF_AND_RESET(names); if (scanner) { g_scanner_destroy(scanner); } @@ -1121,10 +1119,10 @@ error: * Return value is owned by the caller. */ static -struct bt_value *fields_from_arg(const char *arg) +bt_value *fields_from_arg(const char *arg) { GScanner *scanner = NULL; - struct bt_value *fields; + bt_value *fields; fields = bt_value_array_create(); if (!fields) { @@ -1156,7 +1154,7 @@ struct bt_value *fields_from_arg(const char *arg) !strcmp(identifier, "emf") || !strcmp(identifier, "callsite") || !strcmp(identifier, "all")) { - if (bt_value_array_append_string(fields, + if (bt_value_array_append_string_element(fields, identifier)) { goto error; } @@ -1179,7 +1177,7 @@ struct bt_value *fields_from_arg(const char *arg) goto end; error: - BT_PUT(fields); + BT_VALUE_PUT_REF_AND_RESET(fields); end: if (scanner) { @@ -1210,7 +1208,7 @@ void append_param_arg(GString *params_arg, const char *key, const char *value) */ static int insert_flat_params_from_array(GString *params_arg, - struct bt_value *names_array, const char *prefix) + const bt_value *names_array, const char *prefix) { int ret = 0; int i; @@ -1239,8 +1237,10 @@ int insert_flat_params_from_array(GString *params_arg, goto end; } - for (i = 0; i < bt_value_array_size(names_array); i++) { - struct bt_value *str_obj = bt_value_array_get(names_array, i); + for (i = 0; i < bt_value_array_get_size(names_array); i++) { + const bt_value *str_obj = + bt_value_array_borrow_element_by_index_const(names_array, + i); const char *suffix; bool is_default = false; @@ -1250,12 +1250,7 @@ int insert_flat_params_from_array(GString *params_arg, goto end; } - ret = bt_value_string_get(str_obj, &suffix); - BT_PUT(str_obj); - if (ret) { - printf_err("Unexpected error\n"); - goto end; - } + suffix = bt_value_string_get(str_obj); g_string_assign(tmpstr, prefix); g_string_append(tmpstr, "-"); @@ -1363,7 +1358,7 @@ void add_run_cfg_comp(struct bt_config *cfg, struct bt_config_component *cfg_comp, enum bt_config_component_dest dest) { - bt_get(cfg_comp); + bt_object_get_ref(cfg_comp); switch (dest) { case BT_CONFIG_COMPONENT_DEST_SOURCE: @@ -1384,7 +1379,7 @@ static int add_run_cfg_comp_check_name(struct bt_config *cfg, struct bt_config_component *cfg_comp, enum bt_config_component_dest dest, - struct bt_value *instance_names) + bt_value *instance_names) { int ret = 0; @@ -1394,14 +1389,15 @@ int add_run_cfg_comp_check_name(struct bt_config *cfg, goto end; } - if (bt_value_map_has_key(instance_names, cfg_comp->instance_name->str)) { + if (bt_value_map_has_entry(instance_names, + cfg_comp->instance_name->str)) { printf_err("Duplicate component instance name:\n %s\n", cfg_comp->instance_name->str); ret = -1; goto end; } - if (bt_value_map_insert(instance_names, + if (bt_value_map_insert_entry(instance_names, cfg_comp->instance_name->str, bt_value_null)) { print_err_oom(); ret = -1; @@ -1415,7 +1411,7 @@ end: } static -int append_env_var_plugin_paths(struct bt_value *plugin_paths) +int append_env_var_plugin_paths(bt_value *plugin_paths) { int ret = 0; const char *envvar; @@ -1441,7 +1437,7 @@ end: } static -int append_home_and_system_plugin_paths(struct bt_value *plugin_paths, +int append_home_and_system_plugin_paths(bt_value *plugin_paths, bool omit_system_plugin_path, bool omit_home_plugin_path) { int ret; @@ -1488,7 +1484,8 @@ int append_home_and_system_plugin_paths_cfg(struct bt_config *cfg) static struct bt_config *bt_config_base_create(enum bt_config_command command, - struct bt_value *initial_plugin_paths, bool needs_plugins) + const bt_value *initial_plugin_paths, + bool needs_plugins) { struct bt_config *cfg; @@ -1499,12 +1496,16 @@ struct bt_config *bt_config_base_create(enum bt_config_command command, goto error; } - bt_object_init(cfg, bt_config_destroy); + bt_object_init_shared(&cfg->base, bt_config_destroy); cfg->command = command; cfg->command_needs_plugins = needs_plugins; if (initial_plugin_paths) { - cfg->plugin_paths = bt_get(initial_plugin_paths); + bt_value *initial_plugin_paths_copy; + + (void) bt_value_copy(initial_plugin_paths, + &initial_plugin_paths_copy); + cfg->plugin_paths = initial_plugin_paths_copy; } else { cfg->plugin_paths = bt_value_array_create(); if (!cfg->plugin_paths) { @@ -1516,7 +1517,7 @@ struct bt_config *bt_config_base_create(enum bt_config_command command, goto end; error: - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); end: return cfg; @@ -1524,7 +1525,7 @@ end: static struct bt_config *bt_config_run_create( - struct bt_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { struct bt_config *cfg; @@ -1536,21 +1537,21 @@ struct bt_config *bt_config_run_create( } cfg->cmd_data.run.sources = g_ptr_array_new_with_free_func( - (GDestroyNotify) bt_put); + (GDestroyNotify) bt_object_put_ref); if (!cfg->cmd_data.run.sources) { print_err_oom(); goto error; } cfg->cmd_data.run.filters = g_ptr_array_new_with_free_func( - (GDestroyNotify) bt_put); + (GDestroyNotify) bt_object_put_ref); if (!cfg->cmd_data.run.filters) { print_err_oom(); goto error; } cfg->cmd_data.run.sinks = g_ptr_array_new_with_free_func( - (GDestroyNotify) bt_put); + (GDestroyNotify) bt_object_put_ref); if (!cfg->cmd_data.run.sinks) { print_err_oom(); goto error; @@ -1566,7 +1567,7 @@ struct bt_config *bt_config_run_create( goto end; error: - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); end: return cfg; @@ -1574,7 +1575,7 @@ end: static struct bt_config *bt_config_list_plugins_create( - struct bt_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { struct bt_config *cfg; @@ -1588,7 +1589,7 @@ struct bt_config *bt_config_list_plugins_create( goto end; error: - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); end: return cfg; @@ -1596,7 +1597,7 @@ end: static struct bt_config *bt_config_help_create( - struct bt_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { struct bt_config *cfg; @@ -1608,8 +1609,7 @@ struct bt_config *bt_config_help_create( } cfg->cmd_data.help.cfg_component = - bt_config_component_create(BT_COMPONENT_CLASS_TYPE_UNKNOWN, - NULL, NULL); + bt_config_component_create(-1, NULL, NULL); if (!cfg->cmd_data.help.cfg_component) { goto error; } @@ -1617,7 +1617,7 @@ struct bt_config *bt_config_help_create( goto end; error: - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); end: return cfg; @@ -1625,7 +1625,7 @@ end: static struct bt_config *bt_config_query_create( - struct bt_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { struct bt_config *cfg; @@ -1645,7 +1645,7 @@ struct bt_config *bt_config_query_create( goto end; error: - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); end: return cfg; @@ -1653,7 +1653,7 @@ end: static struct bt_config *bt_config_print_ctf_metadata_create( - struct bt_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { struct bt_config *cfg; @@ -1679,7 +1679,7 @@ struct bt_config *bt_config_print_ctf_metadata_create( goto end; error: - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); end: return cfg; @@ -1687,7 +1687,7 @@ end: static struct bt_config *bt_config_print_lttng_live_sessions_create( - struct bt_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { struct bt_config *cfg; @@ -1714,7 +1714,7 @@ struct bt_config *bt_config_print_lttng_live_sessions_create( goto end; error: - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); end: return cfg; @@ -1722,7 +1722,7 @@ end: static int bt_config_append_plugin_paths_check_setuid_setgid( - struct bt_value *plugin_paths, const char *arg) + bt_value *plugin_paths, const char *arg) { int ret = 0; @@ -1823,7 +1823,7 @@ static struct bt_config *bt_config_help_from_args(int argc, const char *argv[], int *retcode, bool force_omit_system_plugin_path, bool force_omit_home_plugin_path, - struct bt_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { poptContext pc = NULL; char *arg = NULL; @@ -1875,7 +1875,7 @@ struct bt_config *bt_config_help_from_args(int argc, const char *argv[], case OPT_HELP: print_help_usage(stdout); *retcode = -1; - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); goto end; default: printf_err("Unknown command-line option specified (option code %d)\n", @@ -1909,8 +1909,6 @@ struct bt_config *bt_config_help_from_args(int argc, const char *argv[], comp_cls_name); } else { /* Fall back to plugin help */ - cfg->cmd_data.help.cfg_component->type = - BT_COMPONENT_CLASS_TYPE_UNKNOWN; g_string_assign( cfg->cmd_data.help.cfg_component->plugin_name, leftover); @@ -1918,7 +1916,7 @@ struct bt_config *bt_config_help_from_args(int argc, const char *argv[], } else { print_help_usage(stdout); *retcode = -1; - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); goto end; } @@ -1930,7 +1928,7 @@ struct bt_config *bt_config_help_from_args(int argc, const char *argv[], error: *retcode = 1; - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); end: g_free(plugin_name); @@ -1987,7 +1985,7 @@ static struct bt_config *bt_config_query_from_args(int argc, const char *argv[], int *retcode, bool force_omit_system_plugin_path, bool force_omit_home_plugin_path, - struct bt_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { poptContext pc = NULL; char *arg = NULL; @@ -1995,7 +1993,7 @@ struct bt_config *bt_config_query_from_args(int argc, const char *argv[], int ret; struct bt_config *cfg = NULL; const char *leftover; - struct bt_value *params = bt_value_null; + bt_value *params = bt_value_null; *retcode = 0; cfg = bt_config_query_create(initial_plugin_paths); @@ -2038,7 +2036,7 @@ struct bt_config *bt_config_query_from_args(int argc, const char *argv[], break; case OPT_PARAMS: { - bt_put(params); + bt_value_put_ref(params); params = bt_value_from_arg(arg); if (!params) { printf_err("Invalid format for --params option's argument:\n %s\n", @@ -2050,7 +2048,7 @@ struct bt_config *bt_config_query_from_args(int argc, const char *argv[], case OPT_HELP: print_query_usage(stdout); *retcode = -1; - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); goto end; default: printf_err("Unknown command-line option specified (option code %d)\n", @@ -2084,11 +2082,12 @@ struct bt_config *bt_config_query_from_args(int argc, const char *argv[], } BT_ASSERT(params); - BT_MOVE(cfg->cmd_data.query.cfg_component->params, params); + BT_OBJECT_MOVE_REF(cfg->cmd_data.query.cfg_component->params, + params); } else { print_query_usage(stdout); *retcode = -1; - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); goto end; } @@ -2103,7 +2102,7 @@ struct bt_config *bt_config_query_from_args(int argc, const char *argv[], } else { print_query_usage(stdout); *retcode = -1; - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); goto end; } @@ -2121,14 +2120,14 @@ struct bt_config *bt_config_query_from_args(int argc, const char *argv[], error: *retcode = 1; - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); end: if (pc) { poptFreeContext(pc); } - bt_put(params); + bt_value_put_ref(params); free(arg); return cfg; } @@ -2175,7 +2174,7 @@ static struct bt_config *bt_config_list_plugins_from_args(int argc, const char *argv[], int *retcode, bool force_omit_system_plugin_path, bool force_omit_home_plugin_path, - struct bt_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { poptContext pc = NULL; char *arg = NULL; @@ -2226,7 +2225,7 @@ struct bt_config *bt_config_list_plugins_from_args(int argc, const char *argv[], case OPT_HELP: print_list_plugins_usage(stdout); *retcode = -1; - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); goto end; default: printf_err("Unknown command-line option specified (option code %d)\n", @@ -2259,7 +2258,7 @@ struct bt_config *bt_config_list_plugins_from_args(int argc, const char *argv[], error: *retcode = 1; - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); end: if (pc) { @@ -2290,7 +2289,7 @@ void print_run_usage(FILE *fp) fprintf(fp, " in the plugin PLUGIN, add it to the graph,\n"); fprintf(fp, " and optionally name it NAME (you can also\n"); fprintf(fp, " specify the name with --name)\n"); - fprintf(fp, " -C, --connect=CONNECTION Connect two created components (see the\n"); + fprintf(fp, " -x, --connect=CONNECTION Connect two created components (see the\n"); fprintf(fp, " expected format of CONNECTION below)\n"); fprintf(fp, " --key=KEY Set the current initialization string\n"); fprintf(fp, " parameter key to KEY (see --value)\n"); @@ -2365,25 +2364,26 @@ static struct bt_config *bt_config_run_from_args(int argc, const char *argv[], int *retcode, bool force_omit_system_plugin_path, bool force_omit_home_plugin_path, - struct bt_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { poptContext pc = NULL; char *arg = NULL; struct bt_config_component *cur_cfg_comp = NULL; enum bt_config_component_dest cur_cfg_comp_dest = BT_CONFIG_COMPONENT_DEST_UNKNOWN; - struct bt_value *cur_base_params = NULL; + bt_value *cur_base_params = NULL; int opt, ret = 0; struct bt_config *cfg = NULL; - struct bt_value *instance_names = NULL; - struct bt_value *connection_args = NULL; + bt_value *instance_names = NULL; + bt_value *connection_args = NULL; GString *cur_param_key = NULL; char error_buf[256] = { 0 }; long retry_duration = -1; + bt_value_status status; struct poptOption run_long_options[] = { { "base-params", 'b', POPT_ARG_STRING, NULL, OPT_BASE_PARAMS, NULL, NULL }, { "component", 'c', POPT_ARG_STRING, NULL, OPT_COMPONENT, NULL, NULL }, - { "connect", 'C', POPT_ARG_STRING, NULL, OPT_CONNECT, NULL, NULL }, + { "connect", 'x', POPT_ARG_STRING, NULL, OPT_CONNECT, NULL, NULL }, { "help", 'h', POPT_ARG_NONE, NULL, OPT_HELP, NULL, NULL }, { "key", '\0', POPT_ARG_STRING, NULL, OPT_KEY, NULL, NULL }, { "name", 'n', POPT_ARG_STRING, NULL, OPT_NAME, NULL, NULL }, @@ -2475,7 +2475,7 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], ret = add_run_cfg_comp_check_name(cfg, cur_cfg_comp, cur_cfg_comp_dest, instance_names); - BT_PUT(cur_cfg_comp); + BT_OBJECT_PUT_REF_AND_RESET(cur_cfg_comp); if (ret) { goto error; } @@ -2503,9 +2503,10 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], } BT_ASSERT(cur_base_params); - bt_put(cur_cfg_comp->params); - cur_cfg_comp->params = bt_value_copy(cur_base_params); - if (!cur_cfg_comp->params) { + bt_value_put_ref(cur_cfg_comp->params); + status = bt_value_copy(cur_base_params, + &cur_cfg_comp->params); + if (status != BT_VALUE_STATUS_OK) { print_err_oom(); goto error; } @@ -2515,8 +2516,8 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], } case OPT_PARAMS: { - struct bt_value *params; - struct bt_value *params_to_set; + bt_value *params; + bt_value *params_to_set; if (!cur_cfg_comp) { printf_err("Cannot add parameters to unavailable component:\n %s\n", @@ -2531,16 +2532,16 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], goto error; } - params_to_set = bt_value_map_extend(cur_cfg_comp->params, - params); - BT_PUT(params); - if (!params_to_set) { + status = bt_value_map_extend(cur_cfg_comp->params, + params, ¶ms_to_set); + BT_VALUE_PUT_REF_AND_RESET(params); + if (status != BT_VALUE_STATUS_OK) { printf_err("Cannot extend current component parameters with --params option's argument:\n %s\n", arg); goto error; } - BT_MOVE(cur_cfg_comp->params, params_to_set); + BT_OBJECT_MOVE_REF(cur_cfg_comp->params, params_to_set); break; } case OPT_KEY: @@ -2564,7 +2565,7 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], goto error; } - if (bt_value_map_insert_string(cur_cfg_comp->params, + if (bt_value_map_insert_string_entry(cur_cfg_comp->params, cur_param_key->str, arg)) { print_err_oom(); goto error; @@ -2581,7 +2582,8 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], break; case OPT_BASE_PARAMS: { - struct bt_value *params = bt_value_from_arg(arg); + bt_value *params = + bt_value_from_arg(arg); if (!params) { printf_err("Invalid format for --base-params option's argument:\n %s\n", @@ -2589,11 +2591,11 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], goto error; } - BT_MOVE(cur_base_params, params); + BT_OBJECT_MOVE_REF(cur_base_params, params); break; } case OPT_RESET_BASE_PARAMS: - BT_PUT(cur_base_params); + BT_VALUE_PUT_REF_AND_RESET(cur_base_params); cur_base_params = bt_value_map_create(); if (!cur_base_params) { print_err_oom(); @@ -2601,8 +2603,8 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], } break; case OPT_CONNECT: - if (bt_value_array_append_string(connection_args, - arg)) { + if (bt_value_array_append_string_element( + connection_args, arg)) { print_err_oom(); goto error; } @@ -2620,7 +2622,7 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], case OPT_HELP: print_run_usage(stdout); *retcode = -1; - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); goto end; default: printf_err("Unknown command-line option specified (option code %d)\n", @@ -2649,7 +2651,7 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], if (cur_cfg_comp) { ret = add_run_cfg_comp_check_name(cfg, cur_cfg_comp, cur_cfg_comp_dest, instance_names); - BT_PUT(cur_cfg_comp); + BT_OBJECT_PUT_REF_AND_RESET(cur_cfg_comp); if (ret) { goto error; } @@ -2669,7 +2671,8 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], goto error; } - ret = bt_config_cli_args_create_connections(cfg, connection_args, + ret = bt_config_cli_args_create_connections(cfg, + connection_args, error_buf, 256); if (ret) { printf_err("Cannot creation connections:\n%s", error_buf); @@ -2680,7 +2683,7 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], error: *retcode = 1; - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); end: if (pc) { @@ -2692,23 +2695,23 @@ end: } free(arg); - BT_PUT(cur_cfg_comp); - BT_PUT(cur_base_params); - BT_PUT(instance_names); - BT_PUT(connection_args); + BT_OBJECT_PUT_REF_AND_RESET(cur_cfg_comp); + BT_VALUE_PUT_REF_AND_RESET(cur_base_params); + BT_VALUE_PUT_REF_AND_RESET(instance_names); + BT_VALUE_PUT_REF_AND_RESET(connection_args); return cfg; } static -struct bt_config *bt_config_run_from_args_array(struct bt_value *run_args, +struct bt_config *bt_config_run_from_args_array(const bt_value *run_args, int *retcode, bool force_omit_system_plugin_path, bool force_omit_home_plugin_path, - struct bt_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { struct bt_config *cfg = NULL; const char **argv; int64_t i, len; - const size_t argc = bt_value_array_size(run_args) + 1; + const size_t argc = bt_value_array_get_size(run_args) + 1; argv = calloc(argc, sizeof(*argv)); if (!argv) { @@ -2718,22 +2721,21 @@ struct bt_config *bt_config_run_from_args_array(struct bt_value *run_args, argv[0] = "run"; - len = bt_value_array_size(run_args); + len = bt_value_array_get_size(run_args); if (len < 0) { printf_err("Invalid executable arguments\n"); goto end; } for (i = 0; i < len; i++) { - int ret; - struct bt_value *arg_value = bt_value_array_get(run_args, i); + const bt_value *arg_value = + bt_value_array_borrow_element_by_index_const(run_args, + i); const char *arg; BT_ASSERT(arg_value); - ret = bt_value_string_get(arg_value, &arg); - BT_ASSERT(ret == 0); + arg = bt_value_string_get(arg_value); BT_ASSERT(arg); argv[i + 1] = arg; - bt_put(arg_value); } cfg = bt_config_run_from_args(argc, argv, retcode, @@ -2925,7 +2927,7 @@ struct poptOption convert_long_options[] = { static GString *get_component_auto_name(const char *prefix, - struct bt_value *existing_names) + const bt_value *existing_names) { unsigned int i = 0; GString *auto_name = g_string_new(NULL); @@ -2935,7 +2937,7 @@ GString *get_component_auto_name(const char *prefix, goto end; } - if (!bt_value_map_has_key(existing_names, prefix)) { + if (!bt_value_map_has_entry(existing_names, prefix)) { g_string_assign(auto_name, prefix); goto end; } @@ -2943,7 +2945,7 @@ GString *get_component_auto_name(const char *prefix, do { g_string_printf(auto_name, "%s-%d", prefix, i); i++; - } while (bt_value_map_has_key(existing_names, auto_name->str)); + } while (bt_value_map_has_entry(existing_names, auto_name->str)); end: return auto_name; @@ -2954,12 +2956,12 @@ struct implicit_component_args { GString *comp_arg; GString *name_arg; GString *params_arg; - struct bt_value *extra_params; + bt_value *extra_params; }; static int assign_name_to_implicit_component(struct implicit_component_args *args, - const char *prefix, struct bt_value *existing_names, + const char *prefix, bt_value *existing_names, GList **comp_names, bool append_to_comp_names) { int ret = 0; @@ -2969,7 +2971,8 @@ int assign_name_to_implicit_component(struct implicit_component_args *args, goto end; } - name = get_component_auto_name(prefix, existing_names); + name = get_component_auto_name(prefix, + existing_names); if (!name) { ret = -1; @@ -2978,7 +2981,7 @@ int assign_name_to_implicit_component(struct implicit_component_args *args, g_string_assign(args->name_arg, name->str); - if (bt_value_map_insert(existing_names, name->str, + if (bt_value_map_insert_entry(existing_names, name->str, bt_value_null)) { print_err_oom(); ret = -1; @@ -3001,7 +3004,7 @@ end: static int append_run_args_for_implicit_component( struct implicit_component_args *impl_args, - struct bt_value *run_args) + bt_value *run_args) { int ret = 0; size_t i; @@ -3010,55 +3013,53 @@ int append_run_args_for_implicit_component( goto end; } - if (bt_value_array_append_string(run_args, "--component")) { + if (bt_value_array_append_string_element(run_args, "--component")) { print_err_oom(); goto error; } - if (bt_value_array_append_string(run_args, impl_args->comp_arg->str)) { + if (bt_value_array_append_string_element(run_args, impl_args->comp_arg->str)) { print_err_oom(); goto error; } - if (bt_value_array_append_string(run_args, "--name")) { + if (bt_value_array_append_string_element(run_args, "--name")) { print_err_oom(); goto error; } - if (bt_value_array_append_string(run_args, impl_args->name_arg->str)) { + if (bt_value_array_append_string_element(run_args, impl_args->name_arg->str)) { print_err_oom(); goto error; } if (impl_args->params_arg->len > 0) { - if (bt_value_array_append_string(run_args, "--params")) { + if (bt_value_array_append_string_element(run_args, "--params")) { print_err_oom(); goto error; } - if (bt_value_array_append_string(run_args, + if (bt_value_array_append_string_element(run_args, impl_args->params_arg->str)) { print_err_oom(); goto error; } } - for (i = 0; i < bt_value_array_size(impl_args->extra_params); i++) { - struct bt_value *elem; + for (i = 0; i < bt_value_array_get_size(impl_args->extra_params); + i++) { + const bt_value *elem; const char *arg; - elem = bt_value_array_get(impl_args->extra_params, i); + elem = bt_value_array_borrow_element_by_index(impl_args->extra_params, + i); if (!elem) { goto error; } BT_ASSERT(bt_value_is_string(elem)); - if (bt_value_string_get(elem, &arg)) { - goto error; - } - - ret = bt_value_array_append_string(run_args, arg); - bt_put(elem); + arg = bt_value_string_get(elem); + ret = bt_value_array_append_string_element(run_args, arg); if (ret) { print_err_oom(); goto error; @@ -3091,7 +3092,7 @@ void finalize_implicit_component_args(struct implicit_component_args *args) g_string_free(args->params_arg, TRUE); } - bt_put(args->extra_params); + bt_value_put_ref(args->extra_params); } static @@ -3149,25 +3150,25 @@ int append_implicit_component_extra_param(struct implicit_component_args *args, BT_ASSERT(key); BT_ASSERT(value); - if (bt_value_array_append_string(args->extra_params, "--key")) { + if (bt_value_array_append_string_element(args->extra_params, "--key")) { print_err_oom(); ret = -1; goto end; } - if (bt_value_array_append_string(args->extra_params, key)) { + if (bt_value_array_append_string_element(args->extra_params, key)) { print_err_oom(); ret = -1; goto end; } - if (bt_value_array_append_string(args->extra_params, "--value")) { + if (bt_value_array_append_string_element(args->extra_params, "--value")) { print_err_oom(); ret = -1; goto end; } - if (bt_value_array_append_string(args->extra_params, value)) { + if (bt_value_array_append_string_element(args->extra_params, value)) { print_err_oom(); ret = -1; goto end; @@ -3180,7 +3181,8 @@ end: static int convert_append_name_param(enum bt_config_component_dest dest, GString *cur_name, GString *cur_name_prefix, - struct bt_value *run_args, struct bt_value *all_names, + bt_value *run_args, + bt_value *all_names, GList **source_names, GList **filter_names, GList **sink_names) { @@ -3204,8 +3206,8 @@ int convert_append_name_param(enum bt_config_component_dest dest, * An explicit name was provided for the user * component. */ - if (bt_value_map_has_key(all_names, - cur_name->str)) { + if (bt_value_map_has_entry(all_names, + cur_name->str)) { printf_err("Duplicate component instance name:\n %s\n", cur_name->str); goto error; @@ -3223,7 +3225,7 @@ int convert_append_name_param(enum bt_config_component_dest dest, * Remember this name globally, for the uniqueness of * all component names. */ - if (bt_value_map_insert(all_names, name->str, bt_value_null)) { + if (bt_value_map_insert_entry(all_names, name->str, bt_value_null)) { print_err_oom(); goto error; } @@ -3232,12 +3234,12 @@ int convert_append_name_param(enum bt_config_component_dest dest, * Append the --name option if necessary. */ if (append_name_opt) { - if (bt_value_array_append_string(run_args, "--name")) { + if (bt_value_array_append_string_element(run_args, "--name")) { print_err_oom(); goto error; } - if (bt_value_array_append_string(run_args, name->str)) { + if (bt_value_array_append_string_element(run_args, name->str)) { print_err_oom(); goto error; } @@ -3305,7 +3307,7 @@ end: * function. */ static -int append_connect_arg(struct bt_value *run_args, +int append_connect_arg(bt_value *run_args, const char *upstream_name, const char *downstream_name) { int ret = 0; @@ -3319,7 +3321,7 @@ int append_connect_arg(struct bt_value *run_args, goto end; } - ret = bt_value_array_append_string(run_args, "--connect"); + ret = bt_value_array_append_string_element(run_args, "--connect"); if (ret) { print_err_oom(); ret = -1; @@ -3329,7 +3331,7 @@ int append_connect_arg(struct bt_value *run_args, g_string_append(arg, e_upstream_name->str); g_string_append_c(arg, ':'); g_string_append(arg, e_downstream_name->str); - ret = bt_value_array_append_string(run_args, arg->str); + ret = bt_value_array_append_string_element(run_args, arg->str); if (ret) { print_err_oom(); ret = -1; @@ -3356,7 +3358,7 @@ end: * Appends the run command's --connect options for the convert command. */ static -int convert_auto_connect(struct bt_value *run_args, +int convert_auto_connect(bt_value *run_args, GList *source_names, GList *filter_names, GList *sink_names) { @@ -3516,6 +3518,7 @@ int fill_implicit_ctf_inputs_args(GPtrArray *implicit_ctf_inputs_args, { int ret = 0; GList *leftover; + bt_value_status status; for (leftover = leftovers; leftover != NULL; leftover = g_list_next(leftover)) { @@ -3538,10 +3541,10 @@ int fill_implicit_ctf_inputs_args(GPtrArray *implicit_ctf_inputs_args, * We need our own copy of the extra parameters because * this is where the unique path goes. */ - BT_PUT(impl_args->extra_params); - impl_args->extra_params = - bt_value_copy(base_implicit_ctf_input_args->extra_params); - if (!impl_args->extra_params) { + BT_VALUE_PUT_REF_AND_RESET(impl_args->extra_params); + status = bt_value_copy(base_implicit_ctf_input_args->extra_params, + &impl_args->extra_params); + if (status != BT_VALUE_STATUS_OK) { print_err_oom(); destroy_implicit_component_args(impl_args); goto error; @@ -3577,7 +3580,7 @@ static struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], int *retcode, bool force_omit_system_plugin_path, bool force_omit_home_plugin_path, - struct bt_value *initial_plugin_paths, char *log_level) + const bt_value *initial_plugin_paths, char *log_level) { poptContext pc = NULL; char *arg = NULL; @@ -3596,8 +3599,8 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], bool print_run_args = false; bool print_run_args_0 = false; bool print_ctf_metadata = false; - struct bt_value *run_args = NULL; - struct bt_value *all_names = NULL; + bt_value *run_args = NULL; + bt_value *all_names = NULL; GList *source_names = NULL; GList *filter_names = NULL; GList *sink_names = NULL; @@ -3611,12 +3614,14 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], struct implicit_component_args implicit_debug_info_args = { 0 }; struct implicit_component_args implicit_muxer_args = { 0 }; struct implicit_component_args implicit_trimmer_args = { 0 }; - struct bt_value *plugin_paths = bt_get(initial_plugin_paths); + bt_value *plugin_paths; char error_buf[256] = { 0 }; size_t i; struct bt_common_lttng_live_url_parts lttng_live_url_parts = { 0 }; char *output = NULL; + (void) bt_value_copy(initial_plugin_paths, &plugin_paths); + *retcode = 0; if (argc <= 1) { @@ -3732,7 +3737,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], switch (opt) { case OPT_COMPONENT: { - enum bt_component_class_type type; + bt_component_class_type type; const char *type_prefix; /* Append current component's name if needed */ @@ -3775,13 +3780,13 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], abort(); } - if (bt_value_array_append_string(run_args, + if (bt_value_array_append_string_element(run_args, "--component")) { print_err_oom(); goto error; } - if (bt_value_array_append_string(run_args, arg)) { + if (bt_value_array_append_string_element(run_args, arg)) { print_err_oom(); goto error; } @@ -3804,13 +3809,13 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], goto error; } - if (bt_value_array_append_string(run_args, + if (bt_value_array_append_string_element(run_args, "--params")) { print_err_oom(); goto error; } - if (bt_value_array_append_string(run_args, arg)) { + if (bt_value_array_append_string_element(run_args, arg)) { print_err_oom(); goto error; } @@ -3822,22 +3827,22 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], goto error; } - if (bt_value_array_append_string(run_args, "--key")) { + if (bt_value_array_append_string_element(run_args, "--key")) { print_err_oom(); goto error; } - if (bt_value_array_append_string(run_args, "path")) { + if (bt_value_array_append_string_element(run_args, "path")) { print_err_oom(); goto error; } - if (bt_value_array_append_string(run_args, "--value")) { + if (bt_value_array_append_string_element(run_args, "--value")) { print_err_oom(); goto error; } - if (bt_value_array_append_string(run_args, arg)) { + if (bt_value_array_append_string_element(run_args, arg)) { print_err_oom(); goto error; } @@ -3849,22 +3854,22 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], goto error; } - if (bt_value_array_append_string(run_args, "--key")) { + if (bt_value_array_append_string_element(run_args, "--key")) { print_err_oom(); goto error; } - if (bt_value_array_append_string(run_args, "url")) { + if (bt_value_array_append_string_element(run_args, "url")) { print_err_oom(); goto error; } - if (bt_value_array_append_string(run_args, "--value")) { + if (bt_value_array_append_string_element(run_args, "--value")) { print_err_oom(); goto error; } - if (bt_value_array_append_string(run_args, arg)) { + if (bt_value_array_append_string_element(run_args, arg)) { print_err_oom(); goto error; } @@ -3876,12 +3881,12 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], goto error; } - if (bt_value_array_append_string(run_args, "--name")) { + if (bt_value_array_append_string_element(run_args, "--name")) { print_err_oom(); goto error; } - if (bt_value_array_append_string(run_args, arg)) { + if (bt_value_array_append_string_element(run_args, arg)) { print_err_oom(); goto error; } @@ -3891,20 +3896,20 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], case OPT_OMIT_HOME_PLUGIN_PATH: force_omit_home_plugin_path = true; - if (bt_value_array_append_string(run_args, + if (bt_value_array_append_string_element(run_args, "--omit-home-plugin-path")) { print_err_oom(); goto error; } break; case OPT_RETRY_DURATION: - if (bt_value_array_append_string(run_args, + if (bt_value_array_append_string_element(run_args, "--retry-duration")) { print_err_oom(); goto error; } - if (bt_value_array_append_string(run_args, arg)) { + if (bt_value_array_append_string_element(run_args, arg)) { print_err_oom(); goto error; } @@ -3912,7 +3917,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], case OPT_OMIT_SYSTEM_PLUGIN_PATH: force_omit_system_plugin_path = true; - if (bt_value_array_append_string(run_args, + if (bt_value_array_append_string_element(run_args, "--omit-system-plugin-path")) { print_err_oom(); goto error; @@ -3924,13 +3929,13 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], goto error; } - if (bt_value_array_append_string(run_args, + if (bt_value_array_append_string_element(run_args, "--plugin-path")) { print_err_oom(); goto error; } - if (bt_value_array_append_string(run_args, arg)) { + if (bt_value_array_append_string_element(run_args, arg)) { print_err_oom(); goto error; } @@ -3938,7 +3943,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], case OPT_HELP: print_convert_usage(stdout); *retcode = -1; - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); goto end; case OPT_BEGIN: case OPT_CLOCK_CYCLES: @@ -4149,7 +4154,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], break; case OPT_FIELDS: { - struct bt_value *fields = fields_from_arg(arg); + bt_value *fields = fields_from_arg(arg); if (!fields) { goto error; @@ -4159,7 +4164,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], ret = insert_flat_params_from_array( implicit_text_args.params_arg, fields, "field"); - bt_put(fields); + bt_value_put_ref(fields); if (ret) { goto error; } @@ -4167,7 +4172,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], } case OPT_NAMES: { - struct bt_value *names = names_from_arg(arg); + bt_value *names = names_from_arg(arg); if (!names) { goto error; @@ -4177,7 +4182,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], ret = insert_flat_params_from_array( implicit_text_args.params_arg, names, "name"); - bt_put(names); + bt_value_put_ref(names); if (ret) { goto error; } @@ -4666,17 +4671,16 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], goto error; } - for (i = 0; i < bt_value_array_size(run_args); i++) { - struct bt_value *arg_value = - bt_value_array_get(run_args, i); + for (i = 0; i < bt_value_array_get_size(run_args); i++) { + const bt_value *arg_value = + bt_value_array_borrow_element_by_index(run_args, + i); const char *arg; GString *quoted = NULL; const char *arg_to_print; BT_ASSERT(arg_value); - ret = bt_value_string_get(arg_value, &arg); - BT_ASSERT(ret == 0); - BT_PUT(arg_value); + arg = bt_value_string_get(arg_value); if (print_run_args) { quoted = bt_common_shell_quote(arg, true); @@ -4695,7 +4699,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], g_string_free(quoted, TRUE); } - if (i < bt_value_array_size(run_args) - 1) { + if (i < bt_value_array_get_size(run_args) - 1) { if (print_run_args) { putchar(' '); } else { @@ -4705,13 +4709,14 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], } *retcode = -1; - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); goto end; } cfg = bt_config_run_from_args_array(run_args, retcode, - force_omit_system_plugin_path, force_omit_home_plugin_path, - initial_plugin_paths); + force_omit_system_plugin_path, + force_omit_home_plugin_path, + initial_plugin_paths); if (!cfg) { goto error; } @@ -4721,7 +4726,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], error: *retcode = 1; - BT_PUT(cfg); + BT_OBJECT_PUT_REF_AND_RESET(cfg); end: if (pc) { @@ -4743,8 +4748,8 @@ end: g_ptr_array_free(implicit_ctf_inputs_args, TRUE); } - bt_put(run_args); - bt_put(all_names); + bt_value_put_ref(run_args); + bt_value_put_ref(all_names); destroy_glist_of_gstring(source_names); destroy_glist_of_gstring(filter_names); destroy_glist_of_gstring(sink_names); @@ -4757,7 +4762,7 @@ end: finalize_implicit_component_args(&implicit_debug_info_args); finalize_implicit_component_args(&implicit_muxer_args); finalize_implicit_component_args(&implicit_trimmer_args); - bt_put(plugin_paths); + bt_value_put_ref(plugin_paths); bt_common_destroy_lttng_live_url_parts(<tng_live_url_parts); return cfg; } @@ -4825,7 +4830,7 @@ char log_level_from_arg(const char *arg) struct bt_config *bt_config_cli_args_create(int argc, const char *argv[], int *retcode, bool force_omit_system_plugin_path, bool force_omit_home_plugin_path, - struct bt_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { struct bt_config *config = NULL; int i; @@ -4852,7 +4857,7 @@ struct bt_config *bt_config_cli_args_create(int argc, const char *argv[], goto end; } } else { - bt_get(initial_plugin_paths); + bt_value_get_ref(initial_plugin_paths); } if (argc <= 1) { @@ -5014,6 +5019,6 @@ struct bt_config *bt_config_cli_args_create(int argc, const char *argv[], } end: - bt_put(initial_plugin_paths); + bt_value_put_ref(initial_plugin_paths); return config; }