#include <babeltrace/assert-pre-internal.h>
#include <babeltrace/assert-internal.h>
-#include <babeltrace/trace-ir/field-classes-internal.h>
+#include <babeltrace/trace-ir/field-class-internal.h>
#include <babeltrace/trace-ir/field-path-internal.h>
-#include <babeltrace/trace-ir/field-path.h>
+#include <babeltrace/trace-ir/field-path-const.h>
#include <babeltrace/trace-ir/resolve-field-path-internal.h>
#include <limits.h>
#include <stdint.h>
goto end;
}
- switch (fc->id) {
- case BT_FIELD_CLASS_ID_STRUCTURE:
- case BT_FIELD_CLASS_ID_VARIANT:
+ switch (fc->type) {
+ case BT_FIELD_CLASS_TYPE_STRUCTURE:
+ case BT_FIELD_CLASS_TYPE_VARIANT:
{
struct bt_field_class_named_field_class_container *container_fc =
(void *) fc;
break;
}
- case BT_FIELD_CLASS_ID_STATIC_ARRAY:
- case BT_FIELD_CLASS_ID_DYNAMIC_ARRAY:
+ case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
+ case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY:
{
struct bt_field_class_array *array_fc = (void *) fc;
field_path->root = root_scope;
if (!find_field_class_recursive(root_fc, tgt_fc, field_path)) {
/* Not found here */
- BT_PUT(field_path);
+ BT_OBJECT_PUT_REF_AND_RESET(field_path);
}
end:
{
struct bt_field_class *child_fc = NULL;
- switch (parent_fc->id) {
- case BT_FIELD_CLASS_ID_STRUCTURE:
- case BT_FIELD_CLASS_ID_VARIANT:
+ switch (parent_fc->type) {
+ case BT_FIELD_CLASS_TYPE_STRUCTURE:
+ case BT_FIELD_CLASS_TYPE_VARIANT:
{
struct bt_named_field_class *named_fc =
BT_FIELD_CLASS_NAMED_FC_AT_INDEX(parent_fc, index);
*advance = true;
break;
}
- case BT_FIELD_CLASS_ID_STATIC_ARRAY:
- case BT_FIELD_CLASS_ID_DYNAMIC_ARRAY:
+ case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
+ case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY:
{
struct bt_field_class_array *array_fc = (void *) parent_fc;
tgt_field_path, i);
bool advance;
- if (fc->id == BT_FIELD_CLASS_ID_STATIC_ARRAY ||
- fc->id == BT_FIELD_CLASS_ID_DYNAMIC_ARRAY ||
- fc->id == BT_FIELD_CLASS_ID_VARIANT) {
+ if (fc->type == BT_FIELD_CLASS_TYPE_STATIC_ARRAY ||
+ fc->type == BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY ||
+ fc->type == BT_FIELD_CLASS_TYPE_VARIANT) {
is_valid = false;
goto end;
}
if (!prev_fc) {
/*
* This is correct: the LCA is the root
- * scope field classe, which must be a
- * structure field classe.
+ * scope field class, which must be a
+ * structure field class.
*/
break;
}
- if (prev_fc->id != BT_FIELD_CLASS_ID_STRUCTURE) {
+ if (prev_fc->type != BT_FIELD_CLASS_TYPE_STRUCTURE) {
is_valid = false;
}
uint64_t tgt_index = bt_field_path_get_index_by_index_inline(
tgt_field_path, tgt_i);
- if (tgt_fc->id == BT_FIELD_CLASS_ID_STATIC_ARRAY ||
- tgt_fc->id == BT_FIELD_CLASS_ID_DYNAMIC_ARRAY ||
- tgt_fc->id == BT_FIELD_CLASS_ID_VARIANT) {
+ 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_VARIANT) {
is_valid = false;
goto end;
}
tgt_fc, ctx);
if (!src_field_path) {
- BT_ASSERT_PRE_MSG("Cannot find requesting field classe in "
+ BT_ASSERT_PRE_MSG("Cannot find requesting field class in "
"resolving context: %!+F", src_fc);
is_valid = false;
goto end;
}
if (!tgt_field_path) {
- BT_ASSERT_PRE_MSG("Cannot find target field classe in "
+ BT_ASSERT_PRE_MSG("Cannot find target field class in "
"resolving context: %!+F", tgt_fc);
is_valid = false;
goto end;
/* Target must be before source */
if (!target_is_before_source(src_field_path, tgt_field_path)) {
- BT_ASSERT_PRE_MSG("Target field classe is located after "
- "requesting field classe: %![req-fc-]+F, %![tgt-fc-]+F",
+ BT_ASSERT_PRE_MSG("Target field class is located after "
+ "requesting field class: %![req-fc-]+F, %![tgt-fc-]+F",
src_fc, tgt_fc);
is_valid = false;
goto end;
*/
if (!target_field_path_in_different_scope_has_struct_fc_only(
src_field_path, tgt_field_path, ctx)) {
- BT_ASSERT_PRE_MSG("Target field classe is located in a "
- "different scope than requesting field classe, "
- "but within an array or a variant field classe: "
+ BT_ASSERT_PRE_MSG("Target field class is located in a "
+ "different scope than requesting field class, "
+ "but within an array or a variant field class: "
"%![req-fc-]+F, %![tgt-fc-]+F",
src_fc, tgt_fc);
is_valid = false;
goto end;
}
- /* Same scope: LCA must be a structure field classe */
+ /* Same scope: LCA must be a structure field class */
if (!lca_is_structure_field_class(src_field_path, tgt_field_path, ctx)) {
BT_ASSERT_PRE_MSG("Lowest common ancestor of target and "
- "requesting field classes is not a structure field classe: "
+ "requesting field classes is not a structure field class: "
"%![req-fc-]+F, %![tgt-fc-]+F",
src_fc, tgt_fc);
is_valid = false;
if (!lca_to_target_has_struct_fc_only(src_field_path, tgt_field_path,
ctx)) {
BT_ASSERT_PRE_MSG("Path from lowest common ancestor of target "
- "and requesting field classes to target field classe "
- "contains an array or a variant field classe: "
+ "and requesting field classes to target field class "
+ "contains an array or a variant field class: "
"%![req-fc-]+F, %![tgt-fc-]+F", src_fc, tgt_fc);
is_valid = false;
goto end;
}
end:
- bt_put(src_field_path);
- bt_put(tgt_field_path);
+ bt_object_put_ref(src_field_path);
+ bt_object_put_ref(tgt_field_path);
return is_valid;
}
struct bt_resolve_field_path_context *ctx)
{
BT_ASSERT_PRE(field_path_is_valid(src_fc, tgt_fc, ctx),
- "Invalid target field classe: %![req-fc-]+F, %![tgt-fc-]+F",
+ "Invalid target field class: %![req-fc-]+F, %![tgt-fc-]+F",
src_fc, tgt_fc);
return find_field_class_in_ctx(tgt_fc, ctx);
}
BT_ASSERT(fc);
/* Resolving part for dynamic array and variant field classes */
- switch (fc->id) {
- case BT_FIELD_CLASS_ID_DYNAMIC_ARRAY:
+ switch (fc->type) {
+ case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY:
{
struct bt_field_class_dynamic_array *dyn_array_fc = (void *) fc;
break;
}
- case BT_FIELD_CLASS_ID_VARIANT:
+ case BT_FIELD_CLASS_TYPE_VARIANT:
{
struct bt_field_class_variant *var_fc = (void *) fc;
}
/* Recursive part */
- switch (fc->id) {
- case BT_FIELD_CLASS_ID_STRUCTURE:
- case BT_FIELD_CLASS_ID_VARIANT:
+ switch (fc->type) {
+ case BT_FIELD_CLASS_TYPE_STRUCTURE:
+ case BT_FIELD_CLASS_TYPE_VARIANT:
{
struct bt_field_class_named_field_class_container *container_fc =
(void *) fc;
break;
}
- case BT_FIELD_CLASS_ID_STATIC_ARRAY:
- case BT_FIELD_CLASS_ID_DYNAMIC_ARRAY:
+ case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
+ case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY:
{
struct bt_field_class_array *array_fc = (void *) fc;