lib: rename `bt_scope` -> `bt_field_path_scope`
[babeltrace.git] / src / plugins / lttng-utils / debug-info / trace-ir-metadata-field-class-copy.c
index 30c87014febaa8d36b1351790fda7241845eef53..d1d852be19c49ecdafe7d3c93bf3a53c2536edec 100644 (file)
@@ -112,7 +112,7 @@ const bt_field_class *resolve_field_path_to_field_class(const bt_field_path *fp,
 {
        struct field_class_resolving_context *fc_resolving_ctx;
        const bt_field_class *fc;
-       bt_scope fp_scope;
+       bt_field_path_scope fp_scope;
 
        BT_COMP_LOGD("Resolving field path: fp-addr=%p", fp);
 
@@ -120,19 +120,19 @@ const bt_field_class *resolve_field_path_to_field_class(const bt_field_path *fp,
        fp_scope = bt_field_path_get_root_scope(fp);
 
        switch (fp_scope) {
-       case BT_SCOPE_PACKET_CONTEXT:
+       case BT_FIELD_PATH_SCOPE_PACKET_CONTEXT:
                fc = walk_field_path(md_maps, fp,
                        fc_resolving_ctx->packet_context);
                break;
-       case BT_SCOPE_EVENT_COMMON_CONTEXT:
+       case BT_FIELD_PATH_SCOPE_EVENT_COMMON_CONTEXT:
                fc = walk_field_path(md_maps, fp,
                        fc_resolving_ctx->event_common_context);
                break;
-       case BT_SCOPE_EVENT_SPECIFIC_CONTEXT:
+       case BT_FIELD_PATH_SCOPE_EVENT_SPECIFIC_CONTEXT:
                fc = walk_field_path(md_maps, fp,
                        fc_resolving_ctx->event_specific_context);
                break;
-       case BT_SCOPE_EVENT_PAYLOAD:
+       case BT_FIELD_PATH_SCOPE_EVENT_PAYLOAD:
                fc = walk_field_path(md_maps, fp,
                        fc_resolving_ctx->event_payload);
                break;
@@ -210,17 +210,17 @@ int field_class_unsigned_enumeration_copy(
        for (i = 0; i < enum_mapping_count; i++) {
                const char *label;
                const bt_integer_range_set_unsigned *range_set;
-               const bt_field_class_unsigned_enumeration_mapping *u_mapping;
+               const bt_field_class_enumeration_unsigned_mapping *u_mapping;
                const bt_field_class_enumeration_mapping *mapping;
 
-               u_mapping = bt_field_class_unsigned_enumeration_borrow_mapping_by_index_const(
+               u_mapping = bt_field_class_enumeration_unsigned_borrow_mapping_by_index_const(
                                in_field_class, i);
-               mapping = bt_field_class_unsigned_enumeration_mapping_as_mapping_const(
+               mapping = bt_field_class_enumeration_unsigned_mapping_as_mapping_const(
                        u_mapping);
                label = bt_field_class_enumeration_mapping_get_label(mapping);
-               range_set = bt_field_class_unsigned_enumeration_mapping_borrow_ranges_const(
+               range_set = bt_field_class_enumeration_unsigned_mapping_borrow_ranges_const(
                        u_mapping);
-               ret = bt_field_class_unsigned_enumeration_add_mapping(
+               ret = bt_field_class_enumeration_unsigned_add_mapping(
                        out_field_class, label, range_set);
                if (ret) {
                        goto error;
@@ -257,17 +257,17 @@ int field_class_signed_enumeration_copy(
        for (i = 0; i < enum_mapping_count; i++) {
                const char *label;
                const bt_integer_range_set_signed *range_set;
-               const bt_field_class_signed_enumeration_mapping *s_mapping;
+               const bt_field_class_enumeration_signed_mapping *s_mapping;
                const bt_field_class_enumeration_mapping *mapping;
 
-               s_mapping = bt_field_class_signed_enumeration_borrow_mapping_by_index_const(
+               s_mapping = bt_field_class_enumeration_signed_borrow_mapping_by_index_const(
                                in_field_class, i);
-               mapping = bt_field_class_signed_enumeration_mapping_as_mapping_const(
+               mapping = bt_field_class_enumeration_signed_mapping_as_mapping_const(
                        s_mapping);
                label = bt_field_class_enumeration_mapping_get_label(mapping);
-               range_set = bt_field_class_signed_enumeration_mapping_borrow_ranges_const(
+               range_set = bt_field_class_enumeration_signed_mapping_borrow_ranges_const(
                        s_mapping);
-               ret = bt_field_class_signed_enumeration_add_mapping(
+               ret = bt_field_class_enumeration_signed_add_mapping(
                        out_field_class, label, range_set);
                if (ret) {
                        goto error;
@@ -413,14 +413,14 @@ int field_class_variant_copy(
                }
 
                if (fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_SELECTOR) {
-                       const bt_field_class_variant_with_unsigned_selector_option *spec_opt =
-                               bt_field_class_variant_with_unsigned_selector_borrow_option_by_index_const(
+                       const bt_field_class_variant_with_selector_unsigned_option *spec_opt =
+                               bt_field_class_variant_with_selector_unsigned_borrow_option_by_index_const(
                                        in_field_class, i);
                        const bt_integer_range_set_unsigned *ranges =
-                               bt_field_class_variant_with_unsigned_selector_option_borrow_ranges_const(
+                               bt_field_class_variant_with_selector_unsigned_option_borrow_ranges_const(
                                        spec_opt);
 
-                       if (bt_field_class_variant_with_unsigned_selector_append_option(
+                       if (bt_field_class_variant_with_selector_unsigned_append_option(
                                        out_field_class, option_name,
                                        out_option_field_class, ranges) !=
                                        BT_FIELD_CLASS_VARIANT_WITH_SELECTOR_APPEND_OPTION_STATUS_OK) {
@@ -430,14 +430,14 @@ int field_class_variant_copy(
                                goto error;
                        }
                } else if (fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_SELECTOR) {
-                       const bt_field_class_variant_with_signed_selector_option *spec_opt =
-                               bt_field_class_variant_with_signed_selector_borrow_option_by_index_const(
+                       const bt_field_class_variant_with_selector_signed_option *spec_opt =
+                               bt_field_class_variant_with_selector_signed_borrow_option_by_index_const(
                                        in_field_class, i);
                        const bt_integer_range_set_signed *ranges =
-                               bt_field_class_variant_with_signed_selector_option_borrow_ranges_const(
+                               bt_field_class_variant_with_selector_signed_option_borrow_ranges_const(
                                        spec_opt);
 
-                       if (bt_field_class_variant_with_signed_selector_append_option(
+                       if (bt_field_class_variant_with_selector_signed_append_option(
                                        out_field_class, option_name,
                                        out_option_field_class, ranges) !=
                                        BT_FIELD_CLASS_VARIANT_WITH_SELECTOR_APPEND_OPTION_STATUS_OK) {
@@ -492,48 +492,18 @@ int field_class_dynamic_array_copy(
                const bt_field_class *in_field_class,
                bt_field_class *out_field_class)
 {
-       const bt_field_class *len_fc;
-       const bt_field_path *len_fp;
-       bt_field_class *out_len_field_class;
-       int ret = 0;
-
        BT_COMP_LOGD("Copying content of dynamic array field class: "
                        "in-fc-addr=%p, out-fc-addr=%p",
                        in_field_class, out_field_class);
 
-       len_fp = bt_field_class_dynamic_array_borrow_length_field_path_const(
-                       in_field_class);
-
-       if (len_fp) {
-               BT_COMP_LOGD("Copying dynamic array length field class using "
-                               "field path: in-len-fp=%p", len_fp);
-               len_fc = resolve_field_path_to_field_class(
-                               len_fp, md_maps);
-               out_len_field_class = g_hash_table_lookup(
-                               md_maps->field_class_map, len_fc);
-               if (!out_len_field_class) {
-                       BT_COMP_LOGE_STR("Cannot find the output matching length"
-                                       "field class.");
-                       ret = -1;
-                       goto error;
-               }
-
-               if (bt_field_class_dynamic_array_set_length_field_class(
-                               out_field_class, out_len_field_class) !=
-                               BT_FIELD_CLASS_DYNAMIC_ARRAY_SET_LENGTH_FIELD_CLASS_STATUS_OK) {
-                       BT_COMP_LOGE_STR("Cannot set dynamic array field class' "
-                                       "length field class.");
-                       BT_FIELD_CLASS_PUT_REF_AND_RESET(out_len_field_class);
-                       ret = -1;
-                       goto error;
-               }
-       }
-
+       /*
+        * There is no content to copy. Keep this function call anyway for
+        * logging purposes.
+        */
        BT_COMP_LOGD("Copied dynamic array field class: in-fc-addr=%p, "
                        "out-fc-addr=%p", in_field_class, out_field_class);
 
-error:
-       return ret;
+       return 0;
 }
 
 static inline
@@ -592,19 +562,19 @@ bt_field_class *create_field_class_copy_internal(struct trace_ir_metadata_maps *
 
        switch (fc_type) {
        case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER:
-               out_field_class = bt_field_class_unsigned_integer_create(
+               out_field_class = bt_field_class_integer_unsigned_create(
                                md_maps->output_trace_class);
                break;
        case BT_FIELD_CLASS_TYPE_SIGNED_INTEGER:
-               out_field_class = bt_field_class_signed_integer_create(
+               out_field_class = bt_field_class_integer_signed_create(
                                md_maps->output_trace_class);
                break;
        case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION:
-               out_field_class = bt_field_class_unsigned_enumeration_create(
+               out_field_class = bt_field_class_enumeration_unsigned_create(
                                md_maps->output_trace_class);
                break;
        case BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION:
-               out_field_class = bt_field_class_signed_enumeration_create(
+               out_field_class = bt_field_class_enumeration_signed_create(
                                md_maps->output_trace_class);
                break;
        case BT_FIELD_CLASS_TYPE_REAL:
@@ -625,7 +595,7 @@ bt_field_class *create_field_class_copy_internal(struct trace_ir_metadata_maps *
                        bt_field_class_array_borrow_element_field_class_const(
                                        in_field_class);
                uint64_t array_len =
-                       bt_field_class_static_array_get_length(in_field_class);
+                       bt_field_class_array_static_get_length(in_field_class);
 
                bt_field_class *out_elem_fc = copy_field_class_array_element(
                                md_maps, in_elem_fc);
@@ -634,7 +604,7 @@ bt_field_class *create_field_class_copy_internal(struct trace_ir_metadata_maps *
                        goto error;
                }
 
-               out_field_class = bt_field_class_static_array_create(
+               out_field_class = bt_field_class_array_static_create(
                                md_maps->output_trace_class,
                                out_elem_fc, array_len);
                break;
@@ -644,17 +614,32 @@ bt_field_class *create_field_class_copy_internal(struct trace_ir_metadata_maps *
                const bt_field_class *in_elem_fc =
                        bt_field_class_array_borrow_element_field_class_const(
                                        in_field_class);
+               const bt_field_path *length_fp =
+                       bt_field_class_array_dynamic_borrow_length_field_path_const(
+                               in_field_class);
+               bt_field_class *out_length_fc = NULL;
 
                bt_field_class *out_elem_fc = copy_field_class_array_element(
-                               md_maps, in_elem_fc);
+                       md_maps, in_elem_fc);
                if (!out_elem_fc) {
                        out_field_class = NULL;
                        goto error;
                }
 
-               out_field_class = bt_field_class_dynamic_array_create(
+               if (length_fp) {
+                       const bt_field_class *in_length_fc =
+                               resolve_field_path_to_field_class(length_fp,
+                                       md_maps);
+
+                       BT_ASSERT(in_length_fc);
+                       out_length_fc = g_hash_table_lookup(md_maps->field_class_map,
+                               in_length_fc);
+                       BT_ASSERT(out_length_fc);
+               }
+
+               out_field_class = bt_field_class_array_dynamic_create(
                                md_maps->output_trace_class,
-                               out_elem_fc);
+                               out_elem_fc, out_length_fc);
                break;
        }
        case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR:
This page took 0.028498 seconds and 4 git commands to generate.