/*
- * field-path.c
- *
- * Babeltrace trace IR - Field path
- *
* Copyright 2013, 2014 Jérémie Galarneau <jeremie.galarneau@efficios.com>
* Copyright 2016 Philippe Proulx <pproulx@efficios.com>
*
#include <babeltrace/trace-ir/field-classes.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/object.h>
#include <limits.h>
#include <stdint.h>
#include <inttypes.h>
BT_ASSERT(field_path);
BT_LIB_LOGD("Destroying field path: %!+P", field_path);
g_array_free(field_path->indexes, TRUE);
+ field_path->indexes = NULL;
g_free(field_path);
}
goto end;
error:
- BT_PUT(field_path);
+ BT_OBJECT_PUT_REF_AND_RESET(field_path);
end:
return field_path;
}
-enum bt_scope bt_field_path_get_root_scope(struct bt_field_path *field_path)
+enum bt_scope bt_field_path_get_root_scope(
+ const struct bt_field_path *field_path)
{
BT_ASSERT_PRE_NON_NULL(field_path, "Field path");
return field_path->root;
}
-uint64_t bt_field_path_get_index_count(struct bt_field_path *field_path)
+uint64_t bt_field_path_get_index_count(const struct bt_field_path *field_path)
{
BT_ASSERT_PRE_NON_NULL(field_path, "Field path");
return (uint64_t) field_path->indexes->len;
}
-uint64_t bt_field_path_get_index_by_index(struct bt_field_path *field_path,
- uint64_t index)
+uint64_t bt_field_path_get_index_by_index(
+ const struct bt_field_path *field_path, uint64_t index)
{
BT_ASSERT_PRE_NON_NULL(field_path, "Field path");
BT_ASSERT_PRE_VALID_INDEX(index, field_path->indexes->len);