lib: make trace IR API const-correct
[babeltrace.git] / lib / trace-ir / resolve-field-path.c
index b86109952d06bac3494f07b381d5cf0f94909d36..fc4727bf6af5018d52b6ebf8aa6cd73b8f866509 100644 (file)
 
 #include <babeltrace/assert-pre-internal.h>
 #include <babeltrace/assert-internal.h>
+#include <babeltrace/object.h>
 #include <babeltrace/trace-ir/field-classes-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>
@@ -45,9 +46,9 @@ bool find_field_class_recursive(struct bt_field_class *fc,
                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;
@@ -71,8 +72,8 @@ bool find_field_class_recursive(struct bt_field_class *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;
 
@@ -109,7 +110,7 @@ int find_field_class(struct bt_field_class *root_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:
@@ -235,9 +236,9 @@ struct bt_field_class *borrow_child_field_class(struct bt_field_class *parent_fc
 {
        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);
@@ -246,8 +247,8 @@ struct bt_field_class *borrow_child_field_class(struct bt_field_class *parent_fc
                *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;
 
@@ -284,9 +285,9 @@ bool target_field_path_in_different_scope_has_struct_fc_only(
                        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;
                }
@@ -341,7 +342,7 @@ bool lca_is_structure_field_class(struct bt_field_path *src_field_path,
                                break;
                        }
 
-                       if (prev_fc->id != BT_FIELD_CLASS_ID_STRUCTURE) {
+                       if (prev_fc->type != BT_FIELD_CLASS_TYPE_STRUCTURE) {
                                is_valid = false;
                        }
 
@@ -420,9 +421,9 @@ bool lca_to_target_has_struct_fc_only(struct bt_field_path *src_field_path,
                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;
                }
@@ -510,8 +511,8 @@ bool field_path_is_valid(struct bt_field_class *src_fc,
        }
 
 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;
 }
 
@@ -535,8 +536,8 @@ int bt_resolve_field_paths(struct bt_field_class *fc,
        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;
 
@@ -552,7 +553,7 @@ int bt_resolve_field_paths(struct bt_field_class *fc,
 
                break;
        }
-       case BT_FIELD_CLASS_ID_VARIANT:
+       case BT_FIELD_CLASS_TYPE_VARIANT:
        {
                struct bt_field_class_variant *var_fc = (void *) fc;
 
@@ -572,9 +573,9 @@ int bt_resolve_field_paths(struct bt_field_class *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;
@@ -593,8 +594,8 @@ int bt_resolve_field_paths(struct bt_field_class *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;
 
This page took 0.027888 seconds and 4 git commands to generate.