X-Git-Url: https://git.efficios.com/?a=blobdiff_plain;f=src%2Flib%2Ftrace-ir%2Fresolve-field-path.c;h=a1415efb355d7ca1b591826ca0b154eb31159d52;hb=b8ddb4f036272e30030202637201d11baf5f20a5;hp=47da398684587bbb703c770798849343bfa303fc;hpb=08276dbe19219eb86ce2149cb3d8b3fcffb02435;p=babeltrace.git diff --git a/src/lib/trace-ir/resolve-field-path.c b/src/lib/trace-ir/resolve-field-path.c index 47da3986..a1415efb 100644 --- a/src/lib/trace-ir/resolve-field-path.c +++ b/src/lib/trace-ir/resolve-field-path.c @@ -98,7 +98,8 @@ bool find_field_class_recursive(struct bt_field_class *fc, break; } case BT_FIELD_CLASS_TYPE_STATIC_ARRAY: - case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY: + case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD: + case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD: { struct bt_field_class_array *array_fc = (void *) fc; struct bt_field_path_item item = { @@ -289,7 +290,8 @@ struct bt_field_class *borrow_child_field_class( break; } case BT_FIELD_CLASS_TYPE_STATIC_ARRAY: - case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY: + case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD: + case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD: { struct bt_field_class_array *array_fc = (void *) parent_fc; @@ -328,7 +330,8 @@ bool target_field_path_in_different_scope_has_struct_fc_only( tgt_field_path, i); if (fc->type == BT_FIELD_CLASS_TYPE_STATIC_ARRAY || - fc->type == BT_FIELD_CLASS_TYPE_DYNAMIC_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 || fc->type == BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR || fc->type == BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR || @@ -451,7 +454,8 @@ bool lca_to_target_has_struct_fc_only(struct bt_field_path *src_field_path, tgt_field_path, tgt_i); if (tgt_fc->type == BT_FIELD_CLASS_TYPE_STATIC_ARRAY || - tgt_fc->type == BT_FIELD_CLASS_TYPE_DYNAMIC_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 || tgt_fc->type == BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR || tgt_fc->type == BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR || @@ -574,30 +578,28 @@ int bt_resolve_field_paths(struct bt_field_class *fc, { struct bt_field_class_option_with_selector *opt_fc = (void *) fc; - if (opt_fc->selector_fc) { - BT_ASSERT(!opt_fc->selector_field_path); - opt_fc->selector_field_path = resolve_field_path( - fc, opt_fc->selector_fc, ctx); - if (!opt_fc->selector_field_path) { - ret = -1; - goto end; - } + BT_ASSERT(opt_fc->selector_fc); + BT_ASSERT(!opt_fc->selector_field_path); + opt_fc->selector_field_path = resolve_field_path( + fc, opt_fc->selector_fc, ctx); + if (!opt_fc->selector_field_path) { + ret = -1; + goto end; } break; } - case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY: + case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD: { struct bt_field_class_array_dynamic *dyn_array_fc = (void *) fc; - if (dyn_array_fc->length_fc) { - BT_ASSERT(!dyn_array_fc->length_field_path); - dyn_array_fc->length_field_path = resolve_field_path( - fc, dyn_array_fc->length_fc, ctx); - if (!dyn_array_fc->length_field_path) { - ret = -1; - goto end; - } + BT_ASSERT(dyn_array_fc->length_fc); + BT_ASSERT(!dyn_array_fc->length_field_path); + dyn_array_fc->length_field_path = resolve_field_path( + fc, dyn_array_fc->length_fc, ctx); + if (!dyn_array_fc->length_field_path) { + ret = -1; + goto end; } break; @@ -657,7 +659,8 @@ int bt_resolve_field_paths(struct bt_field_class *fc, break; } case BT_FIELD_CLASS_TYPE_STATIC_ARRAY: - case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY: + case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD: + case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD: { struct bt_field_class_array *array_fc = (void *) fc;