#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_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;
}
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;
}
*/
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);
}
}