goto error;
}
- if (selector_fc->type == BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER ||
- selector_fc->type == BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION) {
+ if (bt_field_class_type_is(selector_fc->type,
+ BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER)) {
fc_type = BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD;
} else {
fc_type = BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD;
bt_value_freeze(fc->user_attributes);
fc->frozen = true;
- switch (fc->type) {
- case BT_FIELD_CLASS_TYPE_STRUCTURE:
- 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:
- {
+ if (fc->type == BT_FIELD_CLASS_TYPE_STRUCTURE ||
+ bt_field_class_type_is(fc->type,
+ BT_FIELD_CLASS_TYPE_VARIANT)) {
struct bt_field_class_named_field_class_container *container_fc =
(void *) fc;
uint64_t i;
bt_named_field_class_freeze(
container_fc->named_fcs->pdata[i]);
}
-
- break;
- }
- default:
- break;
}
}
"Field class is already part of a trace: %!+F", fc);
fc->part_of_trace_class = true;
- switch (fc->type) {
- case BT_FIELD_CLASS_TYPE_STRUCTURE:
- 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:
- {
+ if (fc->type == BT_FIELD_CLASS_TYPE_STRUCTURE ||
+ bt_field_class_type_is(fc->type,
+ BT_FIELD_CLASS_TYPE_VARIANT)) {
struct bt_field_class_named_field_class_container *container_fc =
(void *) fc;
uint64_t i;
bt_field_class_make_part_of_trace_class(named_fc->fc);
}
-
- break;
- }
- case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
- 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(fc->type,
+ BT_FIELD_CLASS_TYPE_ARRAY)) {
struct bt_field_class_array *array_fc = (void *) fc;
bt_field_class_make_part_of_trace_class(array_fc->element_fc);
- break;
- }
- default:
- break;
}
}
goto end;
}
- switch (fc->type) {
- 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:
- {
+ if (bt_field_class_type_is(fc->type, BT_FIELD_CLASS_TYPE_OPTION)) {
struct bt_field_class_option *opt_fc = (void *) fc;
struct bt_field_path_item item = {
.type = BT_FIELD_PATH_ITEM_TYPE_CURRENT_OPTION_CONTENT,
}
bt_field_path_remove_last_item(field_path);
- break;
- }
- case BT_FIELD_CLASS_TYPE_STRUCTURE:
- 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 (fc->type == BT_FIELD_CLASS_TYPE_STRUCTURE ||
+ bt_field_class_type_is(fc->type,
+ BT_FIELD_CLASS_TYPE_VARIANT)) {
struct bt_field_class_named_field_class_container *container_fc =
(void *) fc;
uint64_t i;
bt_field_path_remove_last_item(field_path);
}
-
- break;
- }
- case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
- 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(fc->type, BT_FIELD_CLASS_TYPE_ARRAY)) {
struct bt_field_class_array *array_fc = (void *) fc;
struct bt_field_path_item item = {
.type = BT_FIELD_PATH_ITEM_TYPE_CURRENT_ARRAY_ELEMENT,
}
bt_field_path_remove_last_item(field_path);
- break;
- }
- default:
- break;
}
end:
{
struct bt_field_class *child_fc = NULL;
- switch (parent_fc->type) {
- 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:
- {
+ if (bt_field_class_type_is(parent_fc->type,
+ BT_FIELD_CLASS_TYPE_OPTION)) {
struct bt_field_class_option *opt_fc = (void *) parent_fc;
BT_ASSERT(fp_item->type ==
BT_FIELD_PATH_ITEM_TYPE_CURRENT_OPTION_CONTENT);
child_fc = opt_fc->content_fc;
- break;
- }
- case BT_FIELD_CLASS_TYPE_STRUCTURE:
- 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 (parent_fc->type == BT_FIELD_CLASS_TYPE_STRUCTURE ||
+ bt_field_class_type_is(parent_fc->type,
+ BT_FIELD_CLASS_TYPE_VARIANT)) {
struct bt_field_class_named_field_class_container *container_fc =
(void *) parent_fc;
struct bt_named_field_class *named_fc;
BT_ASSERT(fp_item->type == BT_FIELD_PATH_ITEM_TYPE_INDEX);
named_fc = container_fc->named_fcs->pdata[fp_item->index];
child_fc = named_fc->fc;
- break;
- }
- case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
- 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(parent_fc->type,
+ BT_FIELD_CLASS_TYPE_ARRAY)) {
struct bt_field_class_array *array_fc = (void *) parent_fc;
BT_ASSERT(fp_item->type ==
BT_FIELD_PATH_ITEM_TYPE_CURRENT_ARRAY_ELEMENT);
child_fc = array_fc->element_fc;
- break;
- }
- default:
- break;
}
return child_fc;
bt_field_path_borrow_item_by_index_inline(
tgt_field_path, i);
- if (fc->type == BT_FIELD_CLASS_TYPE_STATIC_ARRAY ||
- fc->type == BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD ||
- fc->type == BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD ||
- fc->type == BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD ||
- fc->type == BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD ||
- fc->type == BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD ||
- fc->type == BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD ||
- fc->type == BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD ||
- fc->type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD ||
- fc->type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD) {
+ if (bt_field_class_type_is(fc->type,
+ BT_FIELD_CLASS_TYPE_ARRAY) ||
+ bt_field_class_type_is(fc->type,
+ BT_FIELD_CLASS_TYPE_OPTION) ||
+ bt_field_class_type_is(fc->type,
+ BT_FIELD_CLASS_TYPE_VARIANT)) {
is_valid = false;
goto end;
}
bt_field_path_borrow_item_by_index_inline(
tgt_field_path, tgt_i);
- if (tgt_fc->type == BT_FIELD_CLASS_TYPE_STATIC_ARRAY ||
- tgt_fc->type == BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD ||
- tgt_fc->type == BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD ||
- tgt_fc->type == BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD ||
- tgt_fc->type == BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD ||
- tgt_fc->type == BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD ||
- tgt_fc->type == BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD ||
- tgt_fc->type == BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD ||
- tgt_fc->type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD ||
- tgt_fc->type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD) {
+ if (bt_field_class_type_is(tgt_fc->type,
+ BT_FIELD_CLASS_TYPE_ARRAY) ||
+ bt_field_class_type_is(tgt_fc->type,
+ BT_FIELD_CLASS_TYPE_OPTION) ||
+ bt_field_class_type_is(tgt_fc->type,
+ BT_FIELD_CLASS_TYPE_VARIANT)) {
is_valid = false;
goto end;
}
BT_ASSERT(fc);
/* Resolving part for dynamic array and variant field classes */
- switch (fc->type) {
- 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:
- {
+ if (bt_field_class_type_is(fc->type,
+ BT_FIELD_CLASS_TYPE_OPTION_WITH_SELECTOR_FIELD)) {
struct bt_field_class_option_with_selector_field *opt_fc = (void *) fc;
BT_ASSERT(opt_fc->selector_fc);
ret = -1;
goto end;
}
-
- break;
- }
- case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD:
- {
+ } else if (fc->type == BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD) {
struct bt_field_class_array_dynamic *dyn_array_fc = (void *) fc;
BT_ASSERT(dyn_array_fc->length_fc);
ret = -1;
goto end;
}
-
- break;
- }
- 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(fc->type,
+ BT_FIELD_CLASS_TYPE_VARIANT_WITH_SELECTOR_FIELD)) {
struct bt_field_class_variant_with_selector_field *var_fc =
(void *) fc;
}
}
}
- default:
- break;
- }
/* Recursive part */
- switch (fc->type) {
- 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:
- {
+ if (bt_field_class_type_is(fc->type, BT_FIELD_CLASS_TYPE_OPTION)) {
struct bt_field_class_option *opt_fc = (void *) fc;
ret = bt_resolve_field_paths(opt_fc->content_fc, ctx);
- break;
- }
- case BT_FIELD_CLASS_TYPE_STRUCTURE:
- 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 (fc->type == BT_FIELD_CLASS_TYPE_STRUCTURE ||
+ bt_field_class_type_is(fc->type,
+ BT_FIELD_CLASS_TYPE_VARIANT)) {
struct bt_field_class_named_field_class_container *container_fc =
(void *) fc;
uint64_t i;
goto end;
}
}
-
- break;
- }
- case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
- 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(fc->type,
+ BT_FIELD_CLASS_TYPE_ARRAY)) {
struct bt_field_class_array *array_fc = (void *) fc;
ret = bt_resolve_field_paths(array_fc->element_fc, ctx);
- break;
- }
- default:
- break;
}
end:
bt_field *next_field = NULL;
bt_field *base_field;
const bt_field_class *base_fc;
+ bt_field_class_type base_fc_type;
size_t index;
BT_ASSERT(!stack_empty(notit->stack));
BT_ASSERT(base_field);
base_fc = bt_field_borrow_class_const(base_field);
BT_ASSERT(base_fc);
+ base_fc_type = bt_field_class_get_type(base_fc);
- switch (bt_field_class_get_type(base_fc)) {
- case BT_FIELD_CLASS_TYPE_STRUCTURE:
- {
+ if (base_fc_type == BT_FIELD_CLASS_TYPE_STRUCTURE) {
BT_ASSERT(index <
bt_field_class_structure_get_member_count(
bt_field_borrow_class_const(
next_field =
bt_field_structure_borrow_member_field_by_index(
base_field, index);
- break;
- }
- case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
- 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(base_fc_type,
+ BT_FIELD_CLASS_TYPE_ARRAY)) {
BT_ASSERT(index < bt_field_array_get_length(base_field));
next_field = bt_field_array_borrow_element_field_by_index(
base_field, index);
- 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(base_fc_type,
+ BT_FIELD_CLASS_TYPE_VARIANT)) {
BT_ASSERT(index == 0);
next_field = bt_field_variant_borrow_selected_option_field(
base_field);
- break;
- default:
+ } else {
abort();
}
field = borrow_next_field(notit);
BT_ASSERT(field);
BT_ASSERT(bt_field_borrow_class_const(field) == fc->ir_fc);
- BT_ASSERT(bt_field_get_class_type(field) ==
- BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER ||
- bt_field_get_class_type(field) ==
- BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION);
+ BT_ASSERT(bt_field_class_type_is(bt_field_get_class_type(field),
+ BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER));
bt_field_integer_unsigned_set_value(field, value);
stack_top(notit->stack)->index++;
string_field = stack_top(notit->stack)->base;
BT_ASSERT(bt_field_get_class_type(string_field) ==
- BT_FIELD_CLASS_TYPE_STRING);
+ BT_FIELD_CLASS_TYPE_STRING);
/* Append character */
str[0] = (char) value;
field = borrow_next_field(notit);
BT_ASSERT(field);
BT_ASSERT(bt_field_borrow_class_const(field) == fc->ir_fc);
- BT_ASSERT(bt_field_get_class_type(field) ==
- BT_FIELD_CLASS_TYPE_SIGNED_INTEGER ||
- bt_field_get_class_type(field) ==
- BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION);
+ BT_ASSERT(bt_field_class_type_is(bt_field_get_class_type(field),
+ BT_FIELD_CLASS_TYPE_SIGNED_INTEGER));
bt_field_integer_signed_set_value(field, value);
stack_top(notit->stack)->index++;
bt_field_class_type type = bt_field_get_class_type(field);
BT_ASSERT(field);
BT_ASSERT(bt_field_borrow_class_const(field) == fc->ir_fc);
- BT_ASSERT(type == BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL ||
- type == BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL);
+ BT_ASSERT(bt_field_class_type_is(type, BT_FIELD_CLASS_TYPE_REAL));
if (type == BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL) {
bt_field_real_single_precision_set_value(field, (float) value);
* is a sequence field.
*/
if (!seq_fc->base.is_text) {
- BT_ASSERT(bt_field_get_class_type(seq_field) ==
- BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD ||
- bt_field_get_class_type(seq_field) ==
- BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD);
+ BT_ASSERT(bt_field_class_type_is(
+ bt_field_get_class_type(seq_field),
+ BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY));
ret = bt_field_array_dynamic_set_length(seq_field,
(uint64_t) length);
if (ret) {
(unsigned int) bt_field_class_integer_get_field_value_range(
ir_fc),
index_in_parent);
- fc->is_signed = (ir_fc_type == BT_FIELD_CLASS_TYPE_SIGNED_INTEGER ||
- ir_fc_type == BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION);
+ fc->is_signed = bt_field_class_type_is(ir_fc_type,
+ BT_FIELD_CLASS_TYPE_SIGNED_INTEGER);
}
static inline
_fs_sink_ctf_field_class_bit_array_init((void *) fc,
FS_SINK_CTF_FIELD_CLASS_TYPE_FLOAT,
ir_fc,
- bt_field_class_get_type(ir_fc) == BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL ? 32 : 64,
+ bt_field_class_get_type(ir_fc) ==
+ BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL ? 32 : 64,
index_in_parent);
return fc;
}
{
const bt_field_class *ir_fc = fc->base.base.ir_fc;
bt_field_class_type type = bt_field_class_get_type(ir_fc);
- bool is_signed = type == BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION ||
- type == BT_FIELD_CLASS_TYPE_SIGNED_INTEGER;
+ bool is_signed = bt_field_class_type_is(type,
+ BT_FIELD_CLASS_TYPE_SIGNED_INTEGER);
- 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)) {
g_string_append(ctx->tsdl, "enum : ");
}
bt_field_class_integer_get_preferred_display_base(ir_fc),
NULL, NULL, false);
- 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)) {
uint64_t i;
g_string_append(ctx->tsdl, " {\n");
{
unsigned int mant_dig, exp_dig;
- if (bt_field_class_get_type(fc->base.base.ir_fc) == BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL) {
+ if (bt_field_class_get_type(fc->base.base.ir_fc) ==
+ BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL) {
mant_dig = 24;
exp_dig = 8;
} else {
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);
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;
}
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:
+ } else {
abort();
}
BT_COMP_LOGT("Copying content of field: in-f-addr=%p, out-f-addr=%p",
in_field, out_field);
- switch (in_fc_type) {
- case BT_FIELD_CLASS_TYPE_BOOL:
+
+ if (in_fc_type == BT_FIELD_CLASS_TYPE_BOOL) {
bt_field_bool_set_value(out_field,
bt_field_bool_get_value(in_field));
- break;
- case BT_FIELD_CLASS_TYPE_BIT_ARRAY:
+ } else if (in_fc_type == BT_FIELD_CLASS_TYPE_BIT_ARRAY) {
bt_field_bit_array_set_value_as_integer(out_field,
bt_field_bit_array_get_value_as_integer(in_field));
- break;
- case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER:
- case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION:
+ } else if (bt_field_class_type_is(in_fc_type,
+ BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER)) {
bt_field_integer_unsigned_set_value(out_field,
bt_field_integer_unsigned_get_value(in_field));
- break;
- case BT_FIELD_CLASS_TYPE_SIGNED_INTEGER:
- case BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION:
+ } else if (bt_field_class_type_is(in_fc_type,
+ BT_FIELD_CLASS_TYPE_SIGNED_INTEGER)) {
bt_field_integer_signed_set_value(out_field,
bt_field_integer_signed_get_value(in_field));
- break;
- case BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL:
+ } else if (in_fc_type == BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL) {
bt_field_real_single_precision_set_value(out_field,
bt_field_real_single_precision_get_value(in_field));
- break;
- case BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL:
+ } else if (in_fc_type == BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL) {
bt_field_real_double_precision_set_value(out_field,
bt_field_real_double_precision_get_value(in_field));
- break;
- case BT_FIELD_CLASS_TYPE_STRING:
- {
+ } else if (in_fc_type == BT_FIELD_CLASS_TYPE_STRING) {
const char *str = bt_field_string_get_value(in_field);
bt_field_string_set_value_status status =
bt_field_string_set_value(out_field, str);
bt_current_thread_clear_error();
}
- break;
- }
- case BT_FIELD_CLASS_TYPE_STRUCTURE:
- {
+ } else if (in_fc_type == BT_FIELD_CLASS_TYPE_STRUCTURE) {
uint64_t i, nb_member_struct;
const bt_field *in_member_field;
bt_field *out_member_field;
copy_field_content(in_member_field,
out_member_field, log_level, self_comp);
}
- break;
- }
- case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD:
- case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD:
- /* fall through */
- case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
- {
+ } else if (bt_field_class_type_is(in_fc_type,
+ BT_FIELD_CLASS_TYPE_ARRAY)) {
const bt_field *in_element_field;
bt_field *out_element_field;
uint64_t i, array_len;
array_len = bt_field_array_get_length(in_field);
- if (in_fc_type == BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD ||
- in_fc_type == BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD) {
+ if (bt_field_class_type_is(in_fc_type,
+ BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY)) {
set_len_status = bt_field_array_dynamic_set_length(
out_field, array_len);
if (set_len_status !=
copy_field_content(in_element_field, out_element_field,
log_level, self_comp);
}
- 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(in_fc_type,
+ BT_FIELD_CLASS_TYPE_OPTION)) {
const bt_field *in_option_field;
bt_field *out_option_field;
} else {
bt_field_option_set_has_field(out_field, BT_FALSE);
}
-
- 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(in_fc_type,
+ BT_FIELD_CLASS_TYPE_VARIANT)) {
bt_field_variant_select_option_field_by_index_status sel_opt_status;
uint64_t in_selected_option_idx;
const bt_field *in_option_field;
copy_field_content(in_option_field, out_option_field,
log_level, self_comp);
-
- break;
- }
- default:
+ } else {
abort();
}
+
BT_COMP_LOGT("Copied content of field: in-f-addr=%p, out-f-addr=%p",
in_field, out_field);
}
const bt_field_path_item *fp_item =
bt_field_path_borrow_item_by_index_const(fp, i);
- switch (fc_type) {
- case BT_FIELD_CLASS_TYPE_STRUCTURE:
- {
+ if (fc_type == BT_FIELD_CLASS_TYPE_STRUCTURE) {
const bt_field_class_structure_member *member;
BT_ASSERT(bt_field_path_item_get_type(fp_item) ==
bt_field_path_item_index_get_index(fp_item));
curr_fc = bt_field_class_structure_member_borrow_field_class_const(
member);
- 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(fc_type, BT_FIELD_CLASS_TYPE_OPTION)) {
BT_ASSERT(bt_field_path_item_get_type(fp_item) ==
BT_FIELD_PATH_ITEM_TYPE_CURRENT_OPTION_CONTENT);
curr_fc = bt_field_class_option_borrow_field_class_const(
curr_fc);
- 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(fc_type, BT_FIELD_CLASS_TYPE_VARIANT)) {
const bt_field_class_variant_option *option;
BT_ASSERT(bt_field_path_item_get_type(fp_item) ==
curr_fc = bt_field_class_variant_option_borrow_field_class_const(
option);
break;
- }
- case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
- 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(fc_type, BT_FIELD_CLASS_TYPE_ARRAY)) {
BT_ASSERT(bt_field_path_item_get_type(fp_item) ==
BT_FIELD_PATH_ITEM_TYPE_CURRENT_ARRAY_ELEMENT);
curr_fc = bt_field_class_array_borrow_element_field_class_const(
curr_fc);
break;
- }
- default:
+ } else {
abort();
}
}
out_elem_fc, array_len);
break;
}
- case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD:
- case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD:
- {
+ default:
+ break;
+ }
+
+ if (bt_field_class_type_is(fc_type,
+ BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY)) {
const bt_field_class *in_elem_fc =
bt_field_class_array_borrow_element_field_class_const(
in_field_class);
out_field_class = bt_field_class_array_dynamic_create(
md_maps->output_trace_class,
out_elem_fc, out_length_fc);
- 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(fc_type,
+ BT_FIELD_CLASS_TYPE_OPTION)) {
const bt_field_class *in_content_fc =
bt_field_class_option_borrow_field_class_const(
in_field_class);
}
BT_ASSERT(out_field_class);
- 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(fc_type,
+ BT_FIELD_CLASS_TYPE_VARIANT)) {
bt_field_class *out_sel_fc = NULL;
- if (fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD ||
- fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD) {
+ if (bt_field_class_type_is(fc_type,
+ BT_FIELD_CLASS_TYPE_VARIANT_WITH_SELECTOR_FIELD)) {
const bt_field_class *in_sel_fc;
const bt_field_path *sel_fp =
bt_field_class_variant_with_selector_field_borrow_selector_field_path_const(
out_field_class = bt_field_class_variant_create(
md_maps->output_trace_class, out_sel_fc);
- break;
- }
- default:
- abort();
}
/*
* the resolution of field paths in variant and dynamic array field
* classes.
*/
+ BT_ASSERT(out_field_class);
g_hash_table_insert(md_maps->field_class_map,
(gpointer) in_field_class, out_field_class);
bt_field_class *out_field_class)
{
int ret = 0;
+ bt_field_class_type in_fc_type =
+ bt_field_class_get_type(in_field_class);
/*
* Safe to use the same value object because it's frozen at this
bt_field_class_set_user_attributes(out_field_class,
bt_field_class_borrow_user_attributes_const(in_field_class));
- switch(bt_field_class_get_type(in_field_class)) {
- case BT_FIELD_CLASS_TYPE_BOOL:
+ if (in_fc_type == BT_FIELD_CLASS_TYPE_BOOL) {
ret = field_class_bool_copy(md_maps,
in_field_class, out_field_class);
- break;
- case BT_FIELD_CLASS_TYPE_BIT_ARRAY:
+ } else if (in_fc_type == BT_FIELD_CLASS_TYPE_BIT_ARRAY) {
ret = field_class_bit_array_copy(md_maps,
in_field_class, out_field_class);
- break;
- case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER:
+ } else if (in_fc_type == BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER) {
ret = field_class_unsigned_integer_copy(md_maps,
in_field_class, out_field_class);
- break;
- case BT_FIELD_CLASS_TYPE_SIGNED_INTEGER:
+ } else if (in_fc_type == BT_FIELD_CLASS_TYPE_SIGNED_INTEGER) {
ret = field_class_signed_integer_copy(md_maps,
in_field_class, out_field_class);
- break;
- case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION:
+ } else if (in_fc_type == BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION) {
ret = field_class_unsigned_enumeration_copy(md_maps,
in_field_class, out_field_class);
- break;
- case BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION:
+ } else if (in_fc_type == BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION) {
ret = field_class_signed_enumeration_copy(md_maps,
in_field_class, out_field_class);
- break;
- case BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL:
+ } else if (in_fc_type == BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL) {
ret = field_class_single_precision_real_copy(md_maps,
in_field_class, out_field_class);
- break;
- case BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL:
+ } else if (in_fc_type == BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL) {
ret = field_class_double_precision_real_copy(md_maps,
in_field_class, out_field_class);
- break;
- case BT_FIELD_CLASS_TYPE_STRING:
+ } else if (in_fc_type == BT_FIELD_CLASS_TYPE_STRING) {
ret = field_class_string_copy(md_maps,
in_field_class, out_field_class);
- break;
- case BT_FIELD_CLASS_TYPE_STRUCTURE:
+ } else if (in_fc_type == BT_FIELD_CLASS_TYPE_STRUCTURE) {
ret = field_class_structure_copy(md_maps,
in_field_class, out_field_class);
- break;
- case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
+ } else if (in_fc_type == BT_FIELD_CLASS_TYPE_STATIC_ARRAY) {
ret = field_class_static_array_copy(md_maps,
in_field_class, out_field_class);
- 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(in_fc_type,
+ BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY)) {
ret = field_class_dynamic_array_copy(md_maps,
in_field_class, out_field_class);
- 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(in_fc_type,
+ BT_FIELD_CLASS_TYPE_OPTION)) {
ret = field_class_option_copy(md_maps,
in_field_class, out_field_class);
- 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(in_fc_type,
+ BT_FIELD_CLASS_TYPE_VARIANT)) {
ret = field_class_variant_copy(md_maps,
in_field_class, out_field_class);
- break;
- default:
+ } else {
abort();
}
color_fg_blue(ctx), type, color_reset(ctx));
/* Write field class's single-line properties */
- switch (fc_type) {
- case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER:
- case BT_FIELD_CLASS_TYPE_SIGNED_INTEGER:
- write_sp(ctx);
- write_int_field_class_props(ctx, fc, true);
- break;
- case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION:
- case BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION:
- {
+ if (bt_field_class_type_is(fc_type, BT_FIELD_CLASS_TYPE_ENUMERATION)) {
uint64_t mapping_count =
bt_field_class_enumeration_get_mapping_count(fc);
write_uint_prop_value(ctx, mapping_count);
g_string_append_printf(ctx->str, " mapping%s)",
plural(mapping_count));
- break;
- }
- case BT_FIELD_CLASS_TYPE_STRUCTURE:
- {
+ } else if (bt_field_class_type_is(fc_type,
+ BT_FIELD_CLASS_TYPE_INTEGER)) {
+ write_sp(ctx);
+ write_int_field_class_props(ctx, fc, true);
+ } else if (fc_type == BT_FIELD_CLASS_TYPE_STRUCTURE) {
uint64_t member_count =
bt_field_class_structure_get_member_count(fc);
write_uint_prop_value(ctx, member_count);
g_string_append_printf(ctx->str, " member%s)",
plural(member_count));
- break;
- }
- case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
- case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD:
- case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD:
- if (fc_type == BT_FIELD_CLASS_TYPE_STATIC_ARRAY) {
- g_string_append(ctx->str, " (Length ");
- write_uint_prop_value(ctx,
- bt_field_class_array_static_get_length(fc));
- g_string_append_c(ctx->str, ')');
- } else if (fc_type == BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD) {
- const bt_field_path *length_field_path =
- bt_field_class_array_dynamic_with_length_field_borrow_length_field_path_const(
- fc);
-
- g_string_append(ctx->str, " (Length field path ");
- write_field_path(ctx, length_field_path);
- g_string_append_c(ctx->str, ')');
- }
+ } else if (fc_type == BT_FIELD_CLASS_TYPE_STATIC_ARRAY) {
+ g_string_append(ctx->str, " (Length ");
+ write_uint_prop_value(ctx,
+ bt_field_class_array_static_get_length(fc));
+ g_string_append_c(ctx->str, ')');
+ } else if (fc_type == BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD) {
+ const bt_field_path *length_field_path =
+ bt_field_class_array_dynamic_with_length_field_borrow_length_field_path_const(
+ fc);
- break;
- 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:
- {
+ g_string_append(ctx->str, " (Length field path ");
+ write_field_path(ctx, length_field_path);
+ g_string_append_c(ctx->str, ')');
+ } else if (bt_field_class_type_is(fc_type,
+ BT_FIELD_CLASS_TYPE_OPTION_WITH_SELECTOR_FIELD)) {
const bt_field_path *selector_field_path =
bt_field_class_option_with_selector_field_borrow_selector_field_path_const(
fc);
g_string_append(ctx->str, " (Selector field path ");
write_field_path(ctx, selector_field_path);
g_string_append_c(ctx->str, ')');
- 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(fc_type,
+ BT_FIELD_CLASS_TYPE_VARIANT)) {
uint64_t option_count =
bt_field_class_variant_get_option_count(fc);
const bt_field_path *sel_field_path = NULL;
- if (fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD ||
- fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD) {
+ if (bt_field_class_type_is(fc_type,
+ BT_FIELD_CLASS_TYPE_VARIANT_WITH_SELECTOR_FIELD)) {
sel_field_path =
bt_field_class_variant_with_selector_field_borrow_selector_field_path_const(
fc);
}
g_string_append_c(ctx->str, ')');
- break;
- }
- default:
- break;
}
incr_indent(ctx);
}
/* Write field class's complex properties */
- switch (fc_type) {
- case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION:
- case BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION:
- {
+ if (bt_field_class_type_is(fc_type, BT_FIELD_CLASS_TYPE_ENUMERATION)) {
uint64_t mapping_count =
bt_field_class_enumeration_get_mapping_count(fc);
decr_indent(ctx);
}
}
-
- break;
- }
- case BT_FIELD_CLASS_TYPE_STRUCTURE:
- {
+ } else if (fc_type == BT_FIELD_CLASS_TYPE_STRUCTURE) {
uint64_t member_count =
bt_field_class_structure_get_member_count(fc);
decr_indent(ctx);
}
}
-
- break;
- }
- case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
- 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(fc_type, BT_FIELD_CLASS_TYPE_ARRAY)) {
if (wrote_user_attrs) {
write_nl(ctx);
} else {
write_sp(ctx);
write_field_class(ctx,
bt_field_class_array_borrow_element_field_class_const(fc));
- 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(fc_type,
+ BT_FIELD_CLASS_TYPE_OPTION)) {
const void *ranges = NULL;
bool selector_is_signed = false;
write_sp(ctx);
write_field_class(ctx,
bt_field_class_option_borrow_field_class_const(fc));
- 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(fc_type,
+ BT_FIELD_CLASS_TYPE_VARIANT)) {
uint64_t option_count =
bt_field_class_variant_get_option_count(fc);
decr_indent(ctx);
}
}
-
- break;
- }
- default:
- break;
}
decr_indent(ctx);
}
/* Write field's value */
- switch (fc_type) {
- case BT_FIELD_CLASS_TYPE_BOOL:
+ if (fc_type == BT_FIELD_CLASS_TYPE_BOOL) {
write_sp(ctx);
write_bool_prop_value(ctx, bt_field_bool_get_value(field));
- break;
- case BT_FIELD_CLASS_TYPE_BIT_ARRAY:
+ } else if (fc_type == BT_FIELD_CLASS_TYPE_BIT_ARRAY) {
format_uint(buf, bt_field_bit_array_get_value_as_integer(field),
16);
write_sp(ctx);
write_uint_str_prop_value(ctx, buf);
- break;
- case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER:
- case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION:
- case BT_FIELD_CLASS_TYPE_SIGNED_INTEGER:
- case BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION:
- {
+ } else if (bt_field_class_type_is(fc_type,
+ BT_FIELD_CLASS_TYPE_INTEGER)) {
unsigned int fmt_base;
bt_field_class_integer_preferred_display_base base;
abort();
}
- if (fc_type == BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER ||
- fc_type == BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION) {
+ if (bt_field_class_type_is(fc_type,
+ BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER)) {
format_uint(buf,
bt_field_integer_unsigned_get_value(field),
fmt_base);
write_sp(ctx);
write_int_str_prop_value(ctx, buf);
}
-
- break;
- }
- case BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL:
+ } else if (fc_type == BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL) {
write_sp(ctx);
write_float_prop_value(ctx, bt_field_real_single_precision_get_value(field));
- break;
- case BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL:
+ } else if (fc_type == BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL) {
write_sp(ctx);
write_float_prop_value(ctx, bt_field_real_double_precision_get_value(field));
- break;
- case BT_FIELD_CLASS_TYPE_STRING:
+ } else if (fc_type == BT_FIELD_CLASS_TYPE_STRING) {
write_sp(ctx);
write_str_prop_value(ctx, bt_field_string_get_value(field));
- break;
- case BT_FIELD_CLASS_TYPE_STRUCTURE:
- {
+ } else if (fc_type == BT_FIELD_CLASS_TYPE_STRUCTURE) {
uint64_t member_count;
fc = bt_field_borrow_class_const(field);
write_sp(ctx);
write_none_prop_value(ctx, "Empty");
}
-
- break;
- }
- case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
- 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(fc_type, BT_FIELD_CLASS_TYPE_ARRAY)) {
uint64_t length = bt_field_array_get_length(field);
if (length == 0) {
}
decr_indent(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(fc_type,
+ BT_FIELD_CLASS_TYPE_OPTION)) {
const bt_field *content_field =
bt_field_option_borrow_field_const(field);
} else {
write_field(ctx, content_field, NULL);
}
-
- 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(fc_type,
+ BT_FIELD_CLASS_TYPE_VARIANT)) {
write_field(ctx,
bt_field_variant_borrow_selected_option_field_const(
field), NULL);
- break;
- default:
+ } else {
abort();
}
}
int_fc = bt_field_borrow_class_const(field);
BT_ASSERT(int_fc);
ft_type = bt_field_get_class_type(field);
- if (ft_type == BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER ||
- ft_type == BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION) {
+ if (bt_field_class_type_is(ft_type,
+ BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER)) {
v.u = bt_field_integer_unsigned_get_value(field);
} else {
v.s = bt_field_integer_signed_get_value(field);
}
case BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_OCTAL:
{
- if (ft_type == BT_FIELD_CLASS_TYPE_SIGNED_INTEGER ||
- ft_type == BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION) {
+ if (bt_field_class_type_is(ft_type,
+ BT_FIELD_CLASS_TYPE_SIGNED_INTEGER)) {
int len;
len = bt_field_class_integer_get_field_value_range(
break;
}
case BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_DECIMAL:
- if (ft_type == BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER ||
- ft_type == BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION) {
+ if (bt_field_class_type_is(ft_type,
+ BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER)) {
bt_common_g_string_append_printf(pretty->string, "%" PRIu64, v.u);
} else {
bt_common_g_string_append_printf(pretty->string, "%" PRId64, v.s);
bt_field_class_type class_id;
class_id = bt_field_get_class_type(field);
- switch (class_id) {
- case BT_FIELD_CLASS_TYPE_BOOL:
- {
+ if (class_id == BT_FIELD_CLASS_TYPE_BOOL) {
bt_bool v;
const char *text;
bt_common_g_string_append(pretty->string, COLOR_RST);
}
return 0;
- }
- case BT_FIELD_CLASS_TYPE_BIT_ARRAY:
- {
+ } else if (class_id == BT_FIELD_CLASS_TYPE_BIT_ARRAY) {
uint64_t v = bt_field_bit_array_get_value_as_integer(field);
if (pretty->use_colors) {
bt_common_g_string_append(pretty->string, COLOR_RST);
}
return 0;
- }
- case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER:
- case BT_FIELD_CLASS_TYPE_SIGNED_INTEGER:
+ } else if (bt_field_class_type_is(class_id,
+ BT_FIELD_CLASS_TYPE_ENUMERATION)) {
+ return print_enum(pretty, field);
+ } else if (bt_field_class_type_is(class_id,
+ BT_FIELD_CLASS_TYPE_INTEGER)) {
return print_integer(pretty, field);
- case BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL:
- case BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL:
- {
+ } else if (bt_field_class_type_is(class_id,
+ BT_FIELD_CLASS_TYPE_REAL)) {
double v;
if (class_id == BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL) {
- v = (float) bt_field_real_single_precision_get_value(field);
+ v = bt_field_real_single_precision_get_value(field);
} else {
v = bt_field_real_double_precision_get_value(field);
}
bt_common_g_string_append(pretty->string, COLOR_RST);
}
return 0;
- }
- case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION:
- case BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION:
- return print_enum(pretty, field);
- case BT_FIELD_CLASS_TYPE_STRING:
- {
+ } else if (class_id == BT_FIELD_CLASS_TYPE_STRING) {
const char *str;
str = bt_field_string_get_value(field);
bt_common_g_string_append(pretty->string, COLOR_RST);
}
return 0;
- }
- case BT_FIELD_CLASS_TYPE_STRUCTURE:
+ } else if (class_id == BT_FIELD_CLASS_TYPE_STRUCTURE) {
return print_struct(pretty, field, print_names);
- 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(class_id,
+ BT_FIELD_CLASS_TYPE_OPTION)) {
return print_option(pretty, field, print_names);
- 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(class_id,
+ BT_FIELD_CLASS_TYPE_VARIANT)) {
return print_variant(pretty, field, print_names);
- case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
+ } else if (class_id == BT_FIELD_CLASS_TYPE_STATIC_ARRAY) {
return print_array(pretty, field, print_names);
- 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(class_id,
+ BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY)) {
return print_sequence(pretty, field, print_names);
- default:
+ } else {
// TODO: log instead
fprintf(pretty->err, "[error] Unknown type id: %d\n", (int) class_id);
return -1;