#include "utils.h"
-struct bt_stream_class *ctf_utils_stream_class_from_packet_header(
+struct bt_stream_class *ctf_utils_borrow_stream_class_from_packet_header(
struct bt_trace *trace,
struct bt_field *packet_header_field)
{
goto single_stream_class;
}
- stream_id_field = bt_field_structure_get_field_by_name(
+ stream_id_field = bt_field_structure_borrow_field_by_name(
packet_header_field, "stream_id");
if (!stream_id_field) {
goto single_stream_class;
goto end;
}
- stream_class = bt_trace_get_stream_class_by_index(trace, 0);
+ stream_class = bt_trace_borrow_stream_class_by_index(trace, 0);
} else {
- stream_class = bt_trace_get_stream_class_by_id(trace,
+ stream_class = bt_trace_borrow_stream_class_by_id(trace,
stream_id);
}
end:
- bt_put(stream_id_field);
return stream_class;
}
#include <babeltrace/babeltrace.h>
#include <babeltrace/babeltrace-internal.h>
-struct bt_stream_class *ctf_utils_stream_class_from_packet_header(
+struct bt_stream_class *ctf_utils_borrow_stream_class_from_packet_header(
struct bt_trace *trace,
struct bt_field *packet_header_field);
struct bt_stream_class *ds_file_stream_class;
struct bt_stream *stream = NULL;
- ds_file_stream_class = bt_stream_get_class(ds_file->stream);
- bt_put(ds_file_stream_class);
-
+ ds_file_stream_class = bt_stream_borrow_class(ds_file->stream);
if (stream_class != ds_file_stream_class) {
/*
* Not supported: two packets described by two different
}
static
-struct bt_clock_class *get_field_mapped_clock_class(
+struct bt_clock_class *borrow_field_mapped_clock_class(
struct bt_field *field)
{
struct bt_field_type *field_type;
struct bt_clock_class *clock_class = NULL;
- field_type = bt_field_get_type(field);
+ field_type = bt_field_borrow_type(field);
if (!field_type) {
goto end;
}
- clock_class = bt_field_type_integer_get_mapped_clock_class(
- field_type);
+ clock_class = bt_field_type_integer_borrow_mapped_clock_class(
+ field_type);
if (!clock_class) {
goto end;
}
+
end:
- bt_put(field_type);
return clock_class;
}
static
-int get_packet_bounds_from_packet_context(
+int borrow_packet_bounds_from_packet_context(
struct bt_field *packet_context,
struct bt_clock_class **_timestamp_begin_cc,
struct bt_field **_timestamp_begin,
struct bt_field *timestamp_begin = NULL;
struct bt_field *timestamp_end = NULL;
- timestamp_begin = bt_field_structure_get_field_by_name(
+ timestamp_begin = bt_field_structure_borrow_field_by_name(
packet_context, "timestamp_begin");
if (!timestamp_begin) {
BT_LOGD_STR("Cannot retrieve timestamp_begin field in packet context.");
goto end;
}
- timestamp_begin_cc = get_field_mapped_clock_class(timestamp_begin);
+ timestamp_begin_cc = borrow_field_mapped_clock_class(timestamp_begin);
if (!timestamp_begin_cc) {
BT_LOGD_STR("Cannot retrieve the clock mapped to timestamp_begin.");
}
- timestamp_end = bt_field_structure_get_field_by_name(
+ timestamp_end = bt_field_structure_borrow_field_by_name(
packet_context, "timestamp_end");
if (!timestamp_end) {
BT_LOGD_STR("Cannot retrieve timestamp_end field in packet context.");
goto end;
}
- timestamp_end_cc = get_field_mapped_clock_class(timestamp_end);
+ timestamp_end_cc = borrow_field_mapped_clock_class(timestamp_end);
if (!timestamp_end_cc) {
BT_LOGD_STR("Cannot retrieve the clock mapped to timestamp_end.");
}
if (_timestamp_begin_cc) {
- *_timestamp_begin_cc = bt_get(timestamp_begin_cc);
+ *_timestamp_begin_cc = timestamp_begin_cc;
}
if (_timestamp_begin) {
- *_timestamp_begin = bt_get(timestamp_begin);
+ *_timestamp_begin = timestamp_begin;
}
if (_timestamp_end_cc) {
- *_timestamp_end_cc = bt_get(timestamp_end_cc);
+ *_timestamp_end_cc = timestamp_end_cc;
}
if (_timestamp_end) {
- *_timestamp_end = bt_get(timestamp_end);
+ *_timestamp_end = timestamp_end;
}
end:
- bt_put(timestamp_begin_cc);
- bt_put(timestamp_end_cc);
- bt_put(timestamp_begin);
- bt_put(timestamp_end);
return ret;
}
static
-int get_ds_file_packet_bounds_clock_classes(struct ctf_fs_ds_file *ds_file,
+int borrow_ds_file_packet_bounds_clock_classes(struct ctf_fs_ds_file *ds_file,
struct bt_clock_class **timestamp_begin_cc,
struct bt_clock_class **timestamp_end_cc)
{
goto end;
}
- ret = get_packet_bounds_from_packet_context(packet_context,
+ ret = borrow_packet_bounds_from_packet_context(packet_context,
timestamp_begin_cc, NULL,
timestamp_end_cc, NULL);
+
end:
bt_put(packet_context);
return ret;
BT_LOGD("Building index from .idx file of stream file %s",
ds_file->file->path->str);
- ret = get_ds_file_packet_bounds_clock_classes(ds_file,
+ ret = borrow_ds_file_packet_bounds_clock_classes(ds_file,
×tamp_begin_cc, ×tamp_end_cc);
if (ret) {
BT_LOGD_STR("Cannot get clock classes of \"timestamp_begin\" "
if (mapped_file) {
g_mapped_file_unref(mapped_file);
}
- bt_put(timestamp_begin_cc);
- bt_put(timestamp_end_cc);
return index;
error:
ctf_fs_ds_index_destroy(index);
struct bt_clock_class *timestamp_begin_cc = NULL;
struct bt_clock_class *timestamp_end_cc = NULL;
- ret = get_packet_bounds_from_packet_context(packet_context,
+ ret = borrow_packet_bounds_from_packet_context(packet_context,
×tamp_begin_cc, ×tamp_begin,
×tamp_end_cc, ×tamp_end);
if (ret || !timestamp_begin_cc || !timestamp_begin ||
BT_LOGD_STR("Failed to convert raw timestamp to nanoseconds since Epoch.");
goto end;
}
+
end:
- bt_put(timestamp_begin);
- bt_put(timestamp_begin_cc);
- bt_put(timestamp_end);
- bt_put(timestamp_end_cc);
return ret;
}
goto end;
}
- stream_instance_id_field = bt_field_structure_get_field_by_name(
+ stream_instance_id_field = bt_field_structure_borrow_field_by_name(
packet_header_field, "stream_instance_id");
if (!stream_instance_id_field) {
goto end;
goto end;
}
- timestamp_begin_field = bt_field_structure_get_field_by_name(
+ timestamp_begin_field = bt_field_structure_borrow_field_by_name(
packet_context_field, "timestamp_begin");
if (!timestamp_begin_field) {
goto end;
}
- timestamp_begin_ft = bt_field_get_type(timestamp_begin_field);
+ timestamp_begin_ft = bt_field_borrow_type(timestamp_begin_field);
BT_ASSERT(timestamp_begin_ft);
timestamp_begin_clock_class =
- bt_field_type_integer_get_mapped_clock_class(timestamp_begin_ft);
+ bt_field_type_integer_borrow_mapped_clock_class(timestamp_begin_ft);
if (!timestamp_begin_clock_class) {
goto end;
}
timestamp_begin_ns = (uint64_t) timestamp_begin_ns_signed;
end:
- bt_put(timestamp_begin_field);
- bt_put(timestamp_begin_ft);
- bt_put(timestamp_begin_clock_class);
bt_put(clock_value);
return timestamp_begin_ns;
}
packet_header_field);
begin_ns = get_packet_context_timestamp_begin_ns(ctf_fs_trace,
packet_context_field);
- stream_class = ctf_utils_stream_class_from_packet_header(
+ stream_class = ctf_utils_borrow_stream_class_from_packet_header(
ctf_fs_trace->metadata->trace, packet_header_field);
if (!stream_class) {
goto error;
ctf_fs_ds_index_destroy(index);
bt_put(packet_header_field);
bt_put(packet_context_field);
- bt_put(stream_class);
return ret;
}
for (i = 0; i < count; i++) {
struct bt_clock_class *clock_class =
- bt_trace_get_clock_class_by_index(
+ bt_trace_borrow_clock_class_by_index(
ctf_fs_trace->metadata->trace, i);
BT_ASSERT(clock_class);
ret = bt_clock_class_priority_map_add_clock_class(
ctf_fs_trace->cc_prio_map, clock_class, 0);
- BT_PUT(clock_class);
if (ret) {
goto end;
* private component should also exist.
*/
ctf_fs->priv_comp = priv_comp;
- value = bt_value_map_get(params, "path");
+ value = bt_value_map_borrow(params, "path");
if (value && !bt_value_is_string(value)) {
goto error;
}
value_ret = bt_value_string_get(value, &path_param);
BT_ASSERT(value_ret == BT_VALUE_STATUS_OK);
- BT_PUT(value);
- value = bt_value_map_get(params, "clock-class-offset-s");
+ value = bt_value_map_borrow(params, "clock-class-offset-s");
if (value) {
if (!bt_value_is_integer(value)) {
BT_LOGE("clock-class-offset-s should be an integer");
value_ret = bt_value_integer_get(value,
&ctf_fs->metadata_config.clock_class_offset_s);
BT_ASSERT(value_ret == BT_VALUE_STATUS_OK);
- BT_PUT(value);
}
- value = bt_value_map_get(params, "clock-class-offset-ns");
+ value = bt_value_map_borrow(params, "clock-class-offset-ns");
if (value) {
if (!bt_value_is_integer(value)) {
BT_LOGE("clock-class-offset-ns should be an integer");
value_ret = bt_value_integer_get(value,
&ctf_fs->metadata_config.clock_class_offset_ns);
BT_ASSERT(value_ret == BT_VALUE_STATUS_OK);
- BT_PUT(value);
}
ctf_fs->port_data = g_ptr_array_new_with_free_func(port_data_destroy);
BT_ASSERT(ret == BT_COMPONENT_STATUS_OK);
end:
- bt_put(value);
return ctf_fs;
}
goto error;
}
- path_value = bt_value_map_get(params, "path");
+ path_value = bt_value_map_borrow(params, "path");
ret = bt_value_string_get(path_value, &path);
if (ret) {
BT_LOGE_STR("Cannot get `path` string parameter.");
}
end:
- bt_put(path_value);
free(metadata_text);
if (g_metadata_text) {
}
}
- stream_class = bt_stream_get_class(stream);
+ stream_class = bt_stream_borrow_class(stream);
if (!stream_class) {
ret = -1;
goto end;
ret = -1;
goto end;
}
+
end:
- bt_put(stream_class);
return ret;
}
goto error;
}
- path_value = bt_value_map_get(params, "path");
+ path_value = bt_value_map_borrow(params, "path");
ret = bt_value_string_get(path_value, &path);
if (ret) {
BT_LOGE("Cannot get `path` string parameter.");
g_list_free(trace_names);
}
/* "path" becomes invalid with the release of path_value. */
- bt_put(path_value);
return query_ret;
}