lib: make bt_value_map_foreach_entry_{const_}func() return a status code
[babeltrace.git] / src / plugins / text / details / write.c
index 7431be658bf90da71bf6beeadc8141d5040a0216..b98efb78c4d55e0afb42816ff719feecfccd7553 100644 (file)
@@ -21,6 +21,7 @@
  */
 
 #include <babeltrace2/babeltrace.h>
+#include <stdbool.h>
 #include <stdio.h>
 #include <string.h>
 
@@ -41,7 +42,7 @@ const char *plural(uint64_t value)
 static inline
 void incr_indent_by(struct details_write_ctx *ctx, unsigned int value)
 {
-       BT_ASSERT(ctx);
+       BT_ASSERT_DBG(ctx);
        ctx->indent_level += value;
 }
 
@@ -54,8 +55,8 @@ void incr_indent(struct details_write_ctx *ctx)
 static inline
 void decr_indent_by(struct details_write_ctx *ctx, unsigned int value)
 {
-       BT_ASSERT(ctx);
-       BT_ASSERT(ctx->indent_level >= value);
+       BT_ASSERT_DBG(ctx);
+       BT_ASSERT_DBG(ctx->indent_level >= value);
        ctx->indent_level -= value;
 }
 
@@ -101,7 +102,7 @@ void format_uint(char *buf, uint64_t value, unsigned int base)
 
                break;
        default:
-               abort();
+               bt_common_abort();
        }
 
        sprintf(buf_start, spec, value);
@@ -154,7 +155,7 @@ void format_int(char *buf, int64_t value, unsigned int base)
 
                break;
        default:
-               abort();
+               bt_common_abort();
        }
 
        sprintf(buf_start, spec, abs_value);
@@ -167,14 +168,14 @@ void format_int(char *buf, int64_t value, unsigned int base)
 static inline
 void write_nl(struct details_write_ctx *ctx)
 {
-       BT_ASSERT(ctx);
+       BT_ASSERT_DBG(ctx);
        g_string_append_c(ctx->str, '\n');
 }
 
 static inline
 void write_sp(struct details_write_ctx *ctx)
 {
-       BT_ASSERT(ctx);
+       BT_ASSERT_DBG(ctx);
        g_string_append_c(ctx->str, ' ');
 }
 
@@ -183,7 +184,7 @@ void write_indent(struct details_write_ctx *ctx)
 {
        uint64_t i;
 
-       BT_ASSERT(ctx);
+       BT_ASSERT_DBG(ctx);
 
        for (i = 0; i < ctx->indent_level; i++) {
                write_sp(ctx);
@@ -214,7 +215,8 @@ static inline
 void write_obj_type_name(struct details_write_ctx *ctx, const char *name)
 {
        g_string_append_printf(ctx->str, "%s%s%s%s",
-               color_fg_yellow(ctx), color_bold(ctx), name, color_reset(ctx));
+               color_bold(ctx), color_fg_bright_yellow(ctx), name,
+               color_reset(ctx));
 }
 
 static inline
@@ -243,7 +245,7 @@ static inline
 void write_none_prop_value(struct details_write_ctx *ctx, const char *value)
 {
        g_string_append_printf(ctx->str, "%s%s%s%s",
-               color_bold(ctx), color_fg_magenta(ctx),
+               color_bold(ctx), color_fg_bright_magenta(ctx),
                value, color_reset(ctx));
 }
 
@@ -282,7 +284,7 @@ static inline
 void write_str_prop_line(struct details_write_ctx *ctx, const char *prop_name,
                const char *prop_value)
 {
-       BT_ASSERT(prop_value);
+       BT_ASSERT_DBG(prop_value);
        write_indent(ctx);
        write_prop_name(ctx, prop_name);
        g_string_append(ctx->str, ": ");
@@ -326,10 +328,10 @@ void write_bool_prop_value(struct details_write_ctx *ctx, bt_bool prop_value)
        g_string_append(ctx->str, color_bold(ctx));
 
        if (prop_value) {
-               g_string_append(ctx->str, color_fg_green(ctx));
+               g_string_append(ctx->str, color_fg_bright_green(ctx));
                str = "Yes";
        } else {
-               g_string_append(ctx->str, color_fg_red(ctx));
+               g_string_append(ctx->str, color_fg_bright_red(ctx));
                str = "No";
        }
 
@@ -351,7 +353,7 @@ static inline
 void write_uuid_prop_line(struct details_write_ctx *ctx, const char *prop_name,
                bt_uuid uuid)
 {
-       BT_ASSERT(uuid);
+       BT_ASSERT_DBG(uuid);
        write_indent(ctx);
        write_prop_name(ctx, prop_name);
        g_string_append_printf(ctx->str,
@@ -368,14 +370,14 @@ gint compare_strings(const char **a, const char **b)
 }
 
 static
-bt_bool map_value_foreach_add_key_to_array(const char *key,
-               const bt_value *object, void *data)
+bt_value_map_foreach_entry_const_func_status map_value_foreach_add_key_to_array(
+               const char *key, const bt_value *object, void *data)
 {
        GPtrArray *keys = data;
 
-       BT_ASSERT(keys);
+       BT_ASSERT_DBG(keys);
        g_ptr_array_add(keys, (void *) key);
-       return BT_TRUE;
+       return BT_VALUE_MAP_FOREACH_ENTRY_CONST_FUNC_STATUS_OK;
 }
 
 static
@@ -387,7 +389,7 @@ void write_value(struct details_write_ctx *ctx, const bt_value *value,
        GPtrArray *keys = g_ptr_array_new();
        char buf[64];
 
-       BT_ASSERT(keys);
+       BT_ASSERT_DBG(keys);
 
        /* Write field's name */
        if (name) {
@@ -456,7 +458,7 @@ void write_value(struct details_write_ctx *ctx, const bt_value *value,
                        bt_value_map_foreach_entry_const(value,
                                map_value_foreach_add_key_to_array, keys);
 
-               BT_ASSERT(foreach_status ==
+               BT_ASSERT_DBG(foreach_status ==
                        BT_VALUE_MAP_FOREACH_ENTRY_CONST_STATUS_OK);
                g_ptr_array_sort(keys, (GCompareFunc) compare_strings);
 
@@ -482,7 +484,7 @@ void write_value(struct details_write_ctx *ctx, const bt_value *value,
                break;
        }
        default:
-               abort();
+               bt_common_abort();
        }
 
        g_ptr_array_free(keys, TRUE);
@@ -492,7 +494,7 @@ static
 void write_user_attributes(struct details_write_ctx *ctx,
                const bt_value *user_attrs, bool write_newline, bool *written)
 {
-       BT_ASSERT(user_attrs);
+       BT_ASSERT_DBG(user_attrs);
 
        if (!bt_value_map_is_empty(user_attrs)) {
                write_value(ctx, user_attrs, "User attributes");
@@ -530,7 +532,7 @@ void write_int_field_class_props(struct details_write_ctx *ctx,
                write_uint_prop_value(ctx, 16);
                break;
        default:
-               abort();
+               bt_common_abort();
        }
 
        if (close) {
@@ -708,7 +710,7 @@ void write_enum_field_class_mappings(struct details_write_ctx *ctx,
 
        mappings = g_ptr_array_new_with_free_func(
                (GDestroyNotify) destroy_enum_field_class_mapping);
-       BT_ASSERT(mappings);
+       BT_ASSERT_DBG(mappings);
 
        /*
         * Copy field class's mappings to our own arrays and structures
@@ -720,7 +722,7 @@ void write_enum_field_class_mappings(struct details_write_ctx *ctx,
                struct enum_field_class_mapping *mapping = g_new0(
                        struct enum_field_class_mapping, 1);
 
-               BT_ASSERT(mapping);
+               BT_ASSERT_DBG(mapping);
 
                if (is_signed) {
                        fc_mapping = bt_field_class_enumeration_signed_borrow_mapping_by_index_const(
@@ -739,7 +741,7 @@ void write_enum_field_class_mappings(struct details_write_ctx *ctx,
                                fc_mapping));
                mapping->ranges = range_set_to_int_ranges(fc_range_set,
                        is_signed);
-               BT_ASSERT(mapping->ranges);
+               BT_ASSERT_DBG(mapping->ranges);
                g_ptr_array_add(mappings, mapping);
        }
 
@@ -787,7 +789,7 @@ void write_field_path(struct details_write_ctx *ctx,
                write_str_prop_value(ctx, "Event payload");
                break;
        default:
-               abort();
+               bt_common_abort();
        }
 
        g_string_append(ctx->str, ": ");
@@ -809,7 +811,7 @@ void write_field_path(struct details_write_ctx *ctx,
                        write_str_prop_value(ctx, "<current>");
                        break;
                default:
-                       abort();
+                       bt_common_abort();
                }
        }
 
@@ -840,22 +842,22 @@ void write_variant_field_class_option(struct details_write_ctx *ctx,
        write_compound_member_name(ctx,
                bt_field_class_variant_option_get_name(option));
 
-       if (fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR) {
-               const bt_field_class_variant_with_selector_integer_unsigned_option *spec_opt =
-                       bt_field_class_variant_with_selector_integer_unsigned_borrow_option_by_index_const(
+       if (fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD) {
+               const bt_field_class_variant_with_selector_field_integer_unsigned_option *spec_opt =
+                       bt_field_class_variant_with_selector_field_integer_unsigned_borrow_option_by_index_const(
                                fc, index);
 
                orig_ranges =
-                       bt_field_class_variant_with_selector_integer_unsigned_option_borrow_ranges_const(
+                       bt_field_class_variant_with_selector_field_integer_unsigned_option_borrow_ranges_const(
                                spec_opt);
                is_signed = false;
-       } else if (fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR) {
-               const bt_field_class_variant_with_selector_integer_signed_option *spec_opt =
-                       bt_field_class_variant_with_selector_integer_signed_borrow_option_by_index_const(
+       } else if (fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD) {
+               const bt_field_class_variant_with_selector_field_integer_signed_option *spec_opt =
+                       bt_field_class_variant_with_selector_field_integer_signed_borrow_option_by_index_const(
                                fc, index);
 
                orig_ranges =
-                       bt_field_class_variant_with_selector_integer_signed_option_borrow_ranges_const(
+                       bt_field_class_variant_with_selector_field_integer_signed_option_borrow_ranges_const(
                                spec_opt);
                is_signed = true;
        }
@@ -864,7 +866,7 @@ void write_variant_field_class_option(struct details_write_ctx *ctx,
                uint64_t i;
 
                int_ranges = range_set_to_int_ranges(orig_ranges, is_signed);
-               BT_ASSERT(int_ranges);
+               BT_ASSERT_DBG(int_ranges);
 
                for (i = 0; i < int_ranges->len; i++) {
                        struct int_range *range = int_range_at(int_ranges, i);
@@ -952,44 +954,36 @@ void write_field_class(struct details_write_ctx *ctx, const bt_field_class *fc)
        case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD:
                type = "Dynamic array (with length field)";
                break;
-       case BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR:
+       case BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD:
                type = "Option (no selector)";
                break;
-       case BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR:
+       case BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD:
                type = "Option (boolean selector)";
                break;
-       case BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR:
+       case BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD:
                type = "Option (unsigned integer selector)";
                break;
-       case BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR:
+       case BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD:
                type = "Option (signed integer selector)";
                break;
-       case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR:
+       case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD:
                type = "Variant (no selector)";
                break;
-       case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR:
+       case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD:
                type = "Variant (unsigned integer selector)";
                break;
-       case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR:
+       case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD:
                type = "Variant (signed integer selector)";
                break;
        default:
-               abort();
+               bt_common_abort();
        }
 
        g_string_append_printf(ctx->str, "%s%s%s",
                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);
 
@@ -999,10 +993,11 @@ void write_field_class(struct details_write_ctx *ctx, const bt_field_class *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);
 
@@ -1010,54 +1005,40 @@ void write_field_class(struct details_write_ctx *ctx, const bt_field_class *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:
-       case BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR:
-       case BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR:
-       {
+               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_borrow_selector_field_path_const(
+                       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:
-       case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR:
-       case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR:
-       {
+       } 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 ||
-                               fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR) {
+               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_borrow_selector_field_path_const(
+                               bt_field_class_variant_with_selector_field_borrow_selector_field_path_const(
                                        fc);
-                       BT_ASSERT(sel_field_path);
+                       BT_ASSERT_DBG(sel_field_path);
                }
 
                g_string_append(ctx->str, " (");
@@ -1071,10 +1052,6 @@ void write_field_class(struct details_write_ctx *ctx, const bt_field_class *fc)
                }
 
                g_string_append_c(ctx->str, ')');
-               break;
-       }
-       default:
-               break;
        }
 
        incr_indent(ctx);
@@ -1086,10 +1063,7 @@ void write_field_class(struct details_write_ctx *ctx, const bt_field_class *fc)
        }
 
        /* 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);
 
@@ -1111,11 +1085,7 @@ void write_field_class(struct details_write_ctx *ctx, const bt_field_class *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);
 
@@ -1135,17 +1105,17 @@ void write_field_class(struct details_write_ctx *ctx, const bt_field_class *fc)
                                const bt_field_class_structure_member *member =
                                        bt_field_class_structure_borrow_member_by_index_const(
                                                fc, i);
-                               const bt_value *user_attrs;
+                               const bt_value *member_user_attrs;
                                const bt_field_class *member_fc =
                                        bt_field_class_structure_member_borrow_field_class_const(member);
 
                                write_nl(ctx);
                                write_compound_member_name(ctx,
                                        bt_field_class_structure_member_get_name(member));
-                               user_attrs = bt_field_class_structure_member_borrow_user_attributes_const(
+                               member_user_attrs = bt_field_class_structure_member_borrow_user_attributes_const(
                                        member);
 
-                               if (bt_value_map_is_empty(user_attrs)) {
+                               if (bt_value_map_is_empty(member_user_attrs)) {
                                        write_sp(ctx);
                                        write_field_class(ctx, member_fc);
                                } else {
@@ -1159,7 +1129,7 @@ void write_field_class(struct details_write_ctx *ctx, const bt_field_class *fc)
                                        write_nl(ctx);
 
                                        /* User attributes */
-                                       write_user_attributes(ctx, user_attrs,
+                                       write_user_attributes(ctx, member_user_attrs,
                                                false, NULL);
 
                                        decr_indent(ctx);
@@ -1170,12 +1140,7 @@ void write_field_class(struct details_write_ctx *ctx, const bt_field_class *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 {
@@ -1186,12 +1151,8 @@ void write_field_class(struct details_write_ctx *ctx, const bt_field_class *fc)
                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:
-       case BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR:
-       case BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR:
-       case BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR:
-       {
+       } else if (bt_field_class_type_is(fc_type,
+                       BT_FIELD_CLASS_TYPE_OPTION)) {
                const void *ranges = NULL;
                bool selector_is_signed = false;
 
@@ -1201,23 +1162,22 @@ void write_field_class(struct details_write_ctx *ctx, const bt_field_class *fc)
                        g_string_append(ctx->str, ":\n");
                }
 
-               if (fc_type == BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR) {
+               if (fc_type == BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD) {
                        write_bool_prop_line(ctx, "Selector is reversed",
-                               bt_field_class_option_with_selector_bool_selector_is_reversed(fc));
-               } else if (fc_type == BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR) {
-                       ranges = bt_field_class_option_with_selector_integer_unsigned_borrow_selector_ranges_const(fc);
-               } else if (fc_type == BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR) {
-                       ranges = bt_field_class_option_with_selector_integer_signed_borrow_selector_ranges_const(fc);
+                               bt_field_class_option_with_selector_field_bool_selector_is_reversed(fc));
+               } else if (fc_type == BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD) {
+                       ranges = bt_field_class_option_with_selector_field_integer_unsigned_borrow_selector_ranges_const(fc);
+               } else if (fc_type == BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD) {
+                       ranges = bt_field_class_option_with_selector_field_integer_signed_borrow_selector_ranges_const(fc);
                        selector_is_signed = true;
                }
 
                if (ranges) {
                        GArray *sorted_ranges = range_set_to_int_ranges(
                                ranges, selector_is_signed);
-                       uint64_t i;
 
-                       BT_ASSERT(sorted_ranges);
-                       BT_ASSERT(sorted_ranges->len > 0);
+                       BT_ASSERT_DBG(sorted_ranges);
+                       BT_ASSERT_DBG(sorted_ranges->len > 0);
                        write_prop_name_line(ctx, "Selector ranges");
 
                        for (i = 0; i < sorted_ranges->len; i++) {
@@ -1235,12 +1195,8 @@ void write_field_class(struct details_write_ctx *ctx, const bt_field_class *fc)
                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:
-       case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR:
-       case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR:
-       {
+       } 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);
 
@@ -1264,11 +1220,6 @@ void write_field_class(struct details_write_ctx *ctx, const bt_field_class *fc)
                                decr_indent(ctx);
                        }
                }
-
-               break;
-       }
-       default:
-               break;
        }
 
        decr_indent(ctx);
@@ -1278,8 +1229,8 @@ static
 void write_root_field_class(struct details_write_ctx *ctx, const char *name,
                const bt_field_class *fc)
 {
-       BT_ASSERT(name);
-       BT_ASSERT(fc);
+       BT_ASSERT_DBG(name);
+       BT_ASSERT_DBG(fc);
        write_indent(ctx);
        write_prop_name(ctx, name);
        g_string_append(ctx->str, ": ");
@@ -1367,7 +1318,7 @@ void write_event_class(struct details_write_ctx *ctx, const bt_event_class *ec)
                        ll_str = "Debug";
                        break;
                default:
-                       abort();
+                       bt_common_abort();
                }
 
                write_str_prop_line(ctx, "Log level", ll_str);
@@ -1620,7 +1571,7 @@ int try_write_meta(struct details_write_ctx *ctx, const bt_trace_class *tc,
 {
        int ret = 0;
 
-       BT_ASSERT(tc);
+       BT_ASSERT_DBG(tc);
 
        if (details_need_to_write_trace_class(ctx, tc)) {
                uint64_t sc_i;
@@ -1675,7 +1626,7 @@ int try_write_meta(struct details_write_ctx *ctx, const bt_trace_class *tc,
        if (sc && details_need_to_write_meta_object(ctx, tc, sc)) {
                uint64_t ec_i;
 
-               BT_ASSERT(tc);
+               BT_ASSERT_DBG(tc);
 
                if (ctx->details_comp->cfg.compact &&
                                ctx->details_comp->printed_something) {
@@ -1711,7 +1662,7 @@ int try_write_meta(struct details_write_ctx *ctx, const bt_trace_class *tc,
        }
 
        if (ec && details_need_to_write_meta_object(ctx, tc, ec)) {
-               BT_ASSERT(sc);
+               BT_ASSERT_DBG(sc);
 
                if (ctx->details_comp->cfg.compact &&
                                ctx->details_comp->printed_something) {
@@ -1740,7 +1691,8 @@ void write_time_str(struct details_write_ctx *ctx, const char *str)
        }
 
        g_string_append_printf(ctx->str, "[%s%s%s%s]",
-               color_bold(ctx), color_fg_blue(ctx), str, color_reset(ctx));
+               color_bold(ctx), color_fg_bright_blue(ctx), str,
+               color_reset(ctx));
 
        if (ctx->details_comp->cfg.compact) {
                write_sp(ctx);
@@ -1765,7 +1717,7 @@ void write_time(struct details_write_ctx *ctx, const bt_clock_snapshot *cs)
 
        format_uint(buf, bt_clock_snapshot_get_value(cs), 10);
        g_string_append_printf(ctx->str, "[%s%s%s%s%s",
-               color_bold(ctx), color_fg_blue(ctx), buf,
+               color_bold(ctx), color_fg_bright_blue(ctx), buf,
                color_reset(ctx),
                ctx->details_comp->cfg.compact ? "" : " cycles");
        cs_status = bt_clock_snapshot_get_ns_from_origin(cs, &ns_from_origin);
@@ -1773,7 +1725,7 @@ void write_time(struct details_write_ctx *ctx, const bt_clock_snapshot *cs)
                format_int(buf, ns_from_origin, 10);
                g_string_append_printf(ctx->str, "%s %s%s%s%s%s",
                        ctx->details_comp->cfg.compact ? "" : ",",
-                       color_bold(ctx), color_fg_blue(ctx), buf,
+                       color_bold(ctx), color_fg_bright_blue(ctx), buf,
                        color_reset(ctx),
                        ctx->details_comp->cfg.compact ? "" : " ns from origin");
        }
@@ -1806,22 +1758,25 @@ int write_message_follow_tag(struct details_write_ctx *ctx,
 
        if (ctx->details_comp->cfg.compact) {
                g_string_append_printf(ctx->str,
-                       "%s{%s%" PRIu64 " %" PRIu64 " %" PRIu64 "%s%s}%s ",
+                       "%s{%s%s%" PRIu64 " %" PRIu64 " %" PRIu64 "%s%s}%s ",
                        color_fg_cyan(ctx), color_bold(ctx),
+                       color_fg_bright_cyan(ctx),
                        unique_trace_id, bt_stream_class_get_id(sc),
                        bt_stream_get_id(stream),
                        color_reset(ctx), color_fg_cyan(ctx), color_reset(ctx));
        } else {
                g_string_append_printf(ctx->str,
-                       "%s{Trace %s%" PRIu64 "%s%s, Stream class ID %s%" PRIu64 "%s%s, Stream ID %s%" PRIu64 "%s%s}%s\n",
+                       "%s{Trace %s%s%" PRIu64 "%s%s, Stream class ID %s%s%" PRIu64 "%s%s, Stream ID %s%s%" PRIu64 "%s%s}%s\n",
+                       color_fg_cyan(ctx),
+                       color_bold(ctx), color_fg_bright_cyan(ctx),
+                       unique_trace_id, color_reset(ctx),
+                       color_fg_cyan(ctx),
+                       color_bold(ctx), color_fg_bright_cyan(ctx),
+                       bt_stream_class_get_id(sc), color_reset(ctx),
                        color_fg_cyan(ctx),
-                       color_bold(ctx), unique_trace_id,
-                       color_reset(ctx), color_fg_cyan(ctx),
-                       color_bold(ctx), bt_stream_class_get_id(sc),
-                       color_reset(ctx), color_fg_cyan(ctx),
-                       color_bold(ctx), bt_stream_get_id(stream),
-                       color_reset(ctx), color_fg_cyan(ctx),
-                       color_reset(ctx));
+                       color_bold(ctx), color_fg_bright_cyan(ctx),
+                       bt_stream_get_id(stream), color_reset(ctx),
+                       color_fg_cyan(ctx), color_reset(ctx));
        }
 
 end:
@@ -1843,22 +1798,16 @@ void write_field(struct details_write_ctx *ctx, const bt_field *field,
        }
 
        /* 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;
 
@@ -1879,11 +1828,11 @@ void write_field(struct details_write_ctx *ctx, const bt_field *field,
                        fmt_base = 16;
                        break;
                default:
-                       abort();
+                       bt_common_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);
@@ -1896,23 +1845,16 @@ void write_field(struct details_write_ctx *ctx, const bt_field *field,
                        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);
@@ -1939,13 +1881,7 @@ void write_field(struct details_write_ctx *ctx, const bt_field *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) {
@@ -1970,13 +1906,8 @@ void write_field(struct details_write_ctx *ctx, const bt_field *field,
                }
 
                decr_indent(ctx);
-               break;
-       }
-       case BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR:
-       case BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR:
-       case BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR:
-       case BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR:
-       {
+       } 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);
 
@@ -1986,18 +1917,13 @@ void write_field(struct details_write_ctx *ctx, const bt_field *field,
                } else {
                        write_field(ctx, content_field, NULL);
                }
-
-               break;
-       }
-       case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR:
-       case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR:
-       case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR:
+       } 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:
-               abort();
+       } else {
+               bt_common_abort();
        }
 }
 
@@ -2005,8 +1931,8 @@ static
 void write_root_field(struct details_write_ctx *ctx, const char *name,
                const bt_field *field)
 {
-       BT_ASSERT(name);
-       BT_ASSERT(field);
+       BT_ASSERT_DBG(name);
+       BT_ASSERT_DBG(field);
        write_indent(ctx);
        write_prop_name(ctx, name);
        g_string_append(ctx->str, ":");
@@ -2132,7 +2058,6 @@ gint compare_streams(const bt_stream **a, const bt_stream **b)
 static
 void write_trace(struct details_write_ctx *ctx, const bt_trace *trace)
 {
-       const char *name;
        GPtrArray *streams = g_ptr_array_new();
        uint64_t i;
        bool printed_prop = false;
@@ -2144,7 +2069,7 @@ void write_trace(struct details_write_ctx *ctx, const bt_trace *trace)
 
        /* Write name */
        if (ctx->details_comp->cfg.with_trace_name) {
-               name = bt_trace_get_name(trace);
+               const char *name = bt_trace_get_name(trace);
                if (name) {
                        g_string_append(ctx->str, " `");
                        write_str_prop_value(ctx, name);
@@ -2203,7 +2128,7 @@ void write_trace(struct details_write_ctx *ctx, const bt_trace *trace)
                                bt_trace_borrow_environment_entry_value_by_name_const(
                                        trace, name);
 
-                       BT_ASSERT(value);
+                       BT_ASSERT_DBG(value);
                        write_compound_member_name(ctx, name);
                        write_sp(ctx);
 
@@ -2216,7 +2141,7 @@ void write_trace(struct details_write_ctx *ctx, const bt_trace *trace)
                                write_str_prop_value(ctx,
                                        bt_value_string_get(value));
                        } else {
-                               abort();
+                               bt_common_abort();
                        }
 
                        write_nl(ctx);
@@ -2446,7 +2371,7 @@ int write_discarded_items_message(struct details_write_ctx *ctx,
        /* Write times */
        if (beginning_cs) {
                write_time(ctx, beginning_cs);
-               BT_ASSERT(end_cs);
+               BT_ASSERT_DBG(end_cs);
                write_time(ctx, end_cs);
        }
 
@@ -2655,7 +2580,7 @@ int details_write_message(struct details_comp *details_comp,
                ret = write_discarded_packets_message(&ctx, msg);
                break;
        default:
-               abort();
+               bt_common_abort();
        }
 
        /*
This page took 0.037154 seconds and 4 git commands to generate.