X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fplugins%2Fctf%2Ffs-sink%2Ftranslate-trace-ir-to-ctf-ir.c;h=e0a03b2e8be3d02c867e7863f7a8f908d86c8a0c;hb=994cd345db7a82957ce647c2dac28cae11382dcc;hp=8fa624fe0bc6db074ff970051551666dc7c2ff20;hpb=de821fe507f035622c474f097b226f30cd3c7491;p=babeltrace.git diff --git a/src/plugins/ctf/fs-sink/translate-trace-ir-to-ctf-ir.c b/src/plugins/ctf/fs-sink/translate-trace-ir-to-ctf-ir.c index 8fa624fe..e0a03b2e 100644 --- a/src/plugins/ctf/fs-sink/translate-trace-ir-to-ctf-ir.c +++ b/src/plugins/ctf/fs-sink/translate-trace-ir-to-ctf-ir.c @@ -25,6 +25,8 @@ #define BT_LOG_TAG "PLUGIN/SINK.CTF.FS/TRANSLATE-TRACE-IR-TO-CTF-IR" #include "logging/comp-logging.h" +#include "translate-trace-ir-to-ctf-ir.h" + #include #include "common/macros.h" #include "common/common.h" @@ -152,14 +154,14 @@ bool ist_valid_identifier(const char *name) } /* Make sure the name starts with a letter or `_` */ - if (!isalpha(name[0]) && name[0] != '_') { + if (!isalpha((unsigned char) name[0]) && name[0] != '_') { ist_valid = false; goto end; } /* Make sure the name only contains letters, digits, and `_` */ for (at = name; *at != '\0'; at++) { - if (!isalnum(*at) && *at != '_') { + if (!isalnum((unsigned char) *at) && *at != '_') { ist_valid = false; goto end; } @@ -305,7 +307,7 @@ int create_relative_field_ref(struct ctx *ctx, tgt_fc = ctx->cur_ec->payload_fc; break; default: - abort(); + bt_common_abort(); } i = 0; @@ -353,7 +355,7 @@ int create_relative_field_ref(struct ctx *ctx, break; } default: - abort(); + bt_common_abort(); } if (named_fc) { @@ -477,7 +479,7 @@ int create_absolute_field_ref(struct ctx *ctx, g_string_assign(tgt_field_ref, "event.fields"); break; default: - abort(); + bt_common_abort(); } BT_ASSERT(fc); @@ -511,7 +513,7 @@ int create_absolute_field_ref(struct ctx *ctx, bt_field_path_item_index_get_index(fp_item)); break; default: - abort(); + bt_common_abort(); } BT_ASSERT(named_fc); @@ -575,7 +577,6 @@ void resolve_field_class(struct ctx *ctx, tgt_field_ref, user_tgt_fc); if (ret) { *create_before = true; - ret = 0; goto end; } } @@ -632,7 +633,7 @@ void append_to_parent_field_class(struct ctx *ctx, break; } default: - abort(); + bt_common_abort(); } } @@ -999,8 +1000,8 @@ int translate_variant_field_class(struct ctx *ctx) ir_fc_type = bt_field_class_get_type(fc->base.ir_fc); opt_count = bt_field_class_variant_get_option_count(fc->base.ir_fc); - if (ir_fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD || - ir_fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD) { + if (bt_field_class_type_is(ir_fc_type, + BT_FIELD_CLASS_TYPE_VARIANT_WITH_SELECTOR_FIELD)) { ir_selector_field_path = bt_field_class_variant_with_selector_field_borrow_selector_field_path_const( fc->base.ir_fc); BT_ASSERT(ir_selector_field_path); @@ -1018,8 +1019,8 @@ int translate_variant_field_class(struct ctx *ctx) bt_field_class_type type = bt_field_class_get_type( tgt_fc->ir_fc); - if (type != BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION && - type != BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION) { + if (!bt_field_class_type_is(type, + BT_FIELD_CLASS_TYPE_ENUMERATION)) { fc->tag_is_before = true; goto validate_opts; } @@ -1307,50 +1308,36 @@ static int translate_field_class(struct ctx *ctx) { int ret; + bt_field_class_type ir_fc_type = + bt_field_class_get_type(cur_path_stack_top(ctx)->ir_fc); - switch (bt_field_class_get_type(cur_path_stack_top(ctx)->ir_fc)) { - case BT_FIELD_CLASS_TYPE_BOOL: + if (ir_fc_type == BT_FIELD_CLASS_TYPE_BOOL) { ret = translate_bool_field_class(ctx); - break; - case BT_FIELD_CLASS_TYPE_BIT_ARRAY: + } else if (ir_fc_type == BT_FIELD_CLASS_TYPE_BIT_ARRAY) { ret = translate_bit_array_field_class(ctx); - break; - case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER: - case BT_FIELD_CLASS_TYPE_SIGNED_INTEGER: - case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION: - case BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION: + } else if (bt_field_class_type_is(ir_fc_type, + BT_FIELD_CLASS_TYPE_INTEGER)) { ret = translate_integer_field_class(ctx); - break; - case BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL: - case BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL: + } else if (bt_field_class_type_is(ir_fc_type, + BT_FIELD_CLASS_TYPE_REAL)) { ret = translate_real_field_class(ctx); - break; - case BT_FIELD_CLASS_TYPE_STRING: + } else if (ir_fc_type == BT_FIELD_CLASS_TYPE_STRING) { ret = translate_string_field_class(ctx); - break; - case BT_FIELD_CLASS_TYPE_STRUCTURE: + } else if (ir_fc_type == BT_FIELD_CLASS_TYPE_STRUCTURE) { ret = translate_structure_field_class(ctx); - break; - case BT_FIELD_CLASS_TYPE_STATIC_ARRAY: + } else if (ir_fc_type == BT_FIELD_CLASS_TYPE_STATIC_ARRAY) { ret = translate_static_array_field_class(ctx); - break; - case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD: - case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD: + } else if (bt_field_class_type_is(ir_fc_type, + BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY)) { ret = translate_dynamic_array_field_class(ctx); - break; - case BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD: - case BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD: - case BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD: - case BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD: + } else if (bt_field_class_type_is(ir_fc_type, + BT_FIELD_CLASS_TYPE_OPTION)) { ret = translate_option_field_class(ctx); - break; - case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD: - case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD: - case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD: + } else if (bt_field_class_type_is(ir_fc_type, + BT_FIELD_CLASS_TYPE_VARIANT)) { ret = translate_variant_field_class(ctx); - break; - default: - abort(); + } else { + bt_common_abort(); } return ret; @@ -1420,7 +1407,7 @@ int set_field_ref(struct fs_sink_ctf_field_class *fc, const char *fc_name, break; } default: - abort(); + bt_common_abort(); } BT_ASSERT(field_ref); @@ -1707,6 +1694,7 @@ end: return ret; } +static bool default_clock_class_name_exists(struct fs_sink_ctf_trace *trace, const char *name) { @@ -1786,7 +1774,6 @@ int translate_stream_class(struct fs_sink_comp *fs_sink, (*out_sc)->default_clock_class_name->str)) { /* Invalid: create a new name */ make_unique_default_clock_class_name(*out_sc); - ret = 0; } } else { /* No name: create a name */