#include <babeltrace/graph/notification-iterator.h>
#include <babeltrace/ref.h>
#include <babeltrace/values.h>
+#include <babeltrace/values-internal.h>
#include <babeltrace/logging.h>
#include <unistd.h>
#include <stdlib.h>
"BABELTRACE_PLUGIN_CTF_METADATA_LOG_LEVEL",
"BABELTRACE_PLUGIN_CTF_NOTIF_ITER_LOG_LEVEL",
"BABELTRACE_PLUGIN_LTTNG_UTILS_DEBUG_INFO_FLT_LOG_LEVEL",
+ "BABELTRACE_PLUGIN_TEXT_DMESG_SRC_LOG_LEVEL",
"BABELTRACE_PLUGIN_UTILS_MUXER_FLT_LOG_LEVEL",
"BABELTRACE_PLUGIN_UTILS_TRIMMER_FLT_LOG_LEVEL",
+ "BABELTRACE_PLUGIN_CTFCOPYTRACE_LIB_LOG_LEVEL",
+ "BABELTRACE_PLUGIN_CTF_FS_SINK_LOG_LEVEL",
"BABELTRACE_PYTHON_PLUGIN_PROVIDER_LOG_LEVEL",
NULL,
};
const char *str_val;
int size;
int i;
+ enum bt_value_status status;
if (!value) {
return;
bt_common_color_reset());
break;
case BT_VALUE_TYPE_BOOL:
- bt_value_bool_get(value, &bool_val);
+ status = bt_value_bool_get(value, &bool_val);
+ if (status != BT_VALUE_STATUS_OK) {
+ goto error;
+ }
fprintf(fp, "%s%s%s%s\n", bt_common_color_bold(),
bt_common_color_fg_cyan(), bool_val ? "yes" : "no",
bt_common_color_reset());
break;
case BT_VALUE_TYPE_INTEGER:
- bt_value_integer_get(value, &int_val);
+ status = bt_value_integer_get(value, &int_val);
+ if (status != BT_VALUE_STATUS_OK) {
+ goto error;
+ }
fprintf(fp, "%s%s%" PRId64 "%s\n", bt_common_color_bold(),
bt_common_color_fg_red(), int_val,
bt_common_color_reset());
break;
case BT_VALUE_TYPE_FLOAT:
- bt_value_float_get(value, &dbl_val);
+ status = bt_value_float_get(value, &dbl_val);
+ if (status != BT_VALUE_STATUS_OK) {
+ goto error;
+ }
fprintf(fp, "%s%s%lf%s\n", bt_common_color_bold(),
bt_common_color_fg_red(), dbl_val,
bt_common_color_reset());
break;
case BT_VALUE_TYPE_STRING:
- bt_value_string_get(value, &str_val);
+ status = bt_value_string_get(value, &str_val);
+ if (status != BT_VALUE_STATUS_OK) {
+ goto error;
+ }
fprintf(fp, "%s%s%s%s\n", bt_common_color_bold(),
bt_common_color_fg_green(), str_val,
bt_common_color_reset());
break;
case BT_VALUE_TYPE_ARRAY:
size = bt_value_array_size(value);
- assert(size >= 0);
+ if (size < 0) {
+ goto error;
+ }
if (size == 0) {
print_indent(fp, indent);
struct bt_value *element =
bt_value_array_get(value, i);
- assert(element);
+ if (!element) {
+ goto error;
+ }
print_indent(fp, indent);
fprintf(fp, "- ");
default:
abort();
}
+ return;
+
+error:
+ BT_LOGE("Error printing value of type %s.",
+ bt_value_type_string(bt_value_get_type(value)));
}
static
struct bt_value *plugin_path_value = NULL;
const char *plugin_path;
struct bt_plugin_set *plugin_set;
+ enum bt_value_status status;
plugin_path_value = bt_value_array_get(plugin_paths, i);
- bt_value_string_get(plugin_path_value, &plugin_path);
- assert(plugin_path);
+ status = bt_value_string_get(plugin_path_value, &plugin_path);
+ if (status != BT_VALUE_STATUS_OK) {
+ BT_LOGD_STR("Cannot get plugin path string.");
+ BT_PUT(plugin_path_value);
+ continue;
+ }
/*
* Skip this if the directory does not exist because
assert(upstream_port_name);
if (!bt_common_star_glob_match(
- cfg_conn->downstream_port_glob->str, -1ULL,
- downstream_port_name, -1ULL)) {
+ cfg_conn->downstream_port_glob->str, SIZE_MAX,
+ downstream_port_name, SIZE_MAX)) {
bt_put(downstream_port);
continue;
}
}
ctx->connect_ports = true;
}
- goto end;
- }
- if (status != BT_GRAPH_STATUS_OK) {
- BT_LOGE("Cannot create connection: cannot find a matching downstream port for upstream port: "
- "upstream-port-addr=%p, upstream-port-name=\"%s\", "
- "downstream-comp-name=\"%s\", conn-arg=\"%s\"",
- upstream_port, bt_port_get_name(upstream_port),
- cfg_conn->downstream_comp_name->str,
- cfg_conn->arg->str);
- fprintf(stderr,
- "Cannot create connection: cannot find a matching downstream port for upstream port `%s`: %s\n",
- bt_port_get_name(upstream_port), cfg_conn->arg->str);
- goto error;
+ /*
+ * We found a matching downstream port: the search is
+ * over.
+ */
+ goto end;
}
- goto end;
+ /* No downstream port found */
+ BT_LOGE("Cannot create connection: cannot find a matching downstream port for upstream port: "
+ "upstream-port-addr=%p, upstream-port-name=\"%s\", "
+ "downstream-comp-name=\"%s\", conn-arg=\"%s\"",
+ upstream_port, bt_port_get_name(upstream_port),
+ cfg_conn->downstream_comp_name->str,
+ cfg_conn->arg->str);
+ fprintf(stderr,
+ "Cannot create connection: cannot find a matching downstream port for upstream port `%s`: %s\n",
+ bt_port_get_name(upstream_port), cfg_conn->arg->str);
error:
ret = -1;
if (!bt_common_star_glob_match(
cfg_conn->upstream_port_glob->str,
- -1ULL, upstream_port_name, -1ULL)) {
+ SIZE_MAX, upstream_port_name, SIZE_MAX)) {
continue;
}
the_graph = ctx->graph;
ret = bt_graph_add_port_added_listener(ctx->graph,
- graph_port_added_listener, ctx);
+ graph_port_added_listener, NULL, ctx);
if (ret < 0) {
BT_LOGE_STR("Cannot add \"port added\" listener to graph.");
goto error;
}
ret = bt_graph_add_port_removed_listener(ctx->graph,
- graph_port_removed_listener, ctx);
+ graph_port_removed_listener, NULL, ctx);
if (ret < 0) {
BT_LOGE_STR("Cannot add \"port removed\" listener to graph.");
goto error;
}
ret = bt_graph_add_ports_connected_listener(ctx->graph,
- graph_ports_connected_listener, ctx);
+ graph_ports_connected_listener, NULL, ctx);
if (ret < 0) {
BT_LOGE_STR("Cannot add \"ports connected\" listener to graph.");
goto error;
}
ret = bt_graph_add_ports_disconnected_listener(ctx->graph,
- graph_ports_disconnected_listener, ctx);
+ graph_ports_disconnected_listener, NULL, ctx);
if (ret < 0) {
BT_LOGE_STR("Cannot add \"ports disconnected\" listener to graph.");
goto error;
*/
for (stream_idx = 0; stream_idx < stream_count; stream_idx++) {
const char *stream_path;
- gboolean hash_ret;
port_id = g_new0(struct port_id, 1);
if (!port_id) {
BT_LOGD("Inserting stream intersection ");
- hash_ret = g_hash_table_insert(ctx->intersections,
- port_id, trace_range);
- assert(hash_ret);
+ g_hash_table_insert(ctx->intersections, port_id, trace_range);
port_id = NULL;
trace_range = NULL;
while (*env_var_name) {
if (!getenv(*env_var_name)) {
if (cfg->verbose) {
- setenv(*env_var_name, "I", 1);
+ g_setenv(*env_var_name, "I", 1);
} else if (cfg->debug) {
- setenv(*env_var_name, "V", 1);
+ g_setenv(*env_var_name, "V", 1);
} else {
char val[2] = { 0 };
* explicitly specified.
*/
val[0] = cfg->log_level;
- setenv(*env_var_name, val, 1);
+ g_setenv(*env_var_name, val, 1);
}
}