Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Change-Id: I757acc00be498e1ba82e6255f1d2b85ef9a2059c
Reviewed-on: https://review.lttng.org/c/babeltrace/+/1925
Tested-by: jenkins <jenkins@lttng.org>
Reviewed-by: Francis Deslauriers <francis.deslauriers@efficios.com>
+ /*
+ * Safe to use the same value object because it's frozen at this
+ * point.
+ */
+ bt_trace_set_user_attributes(out_trace,
+ bt_trace_borrow_user_attributes_const(in_trace));
+
/*
* Do not copy the trace UUID as it may be modified and should
* no longer have the same UUID.
/*
* Do not copy the trace UUID as it may be modified and should
* no longer have the same UUID.
+ /*
+ * Safe to use the same value object because it's frozen at this
+ * point.
+ */
+ bt_stream_set_user_attributes(out_stream,
+ bt_stream_borrow_user_attributes_const(in_stream));
BT_COMP_LOGD("Copied content of stream: in-s-addr=%p, out-s-addr=%p",
in_stream, out_stream);
end:
BT_COMP_LOGD("Copied content of stream: in-s-addr=%p, out-s-addr=%p",
in_stream, out_stream);
end:
BT_COMP_LOGD("Copying content of trace class: in-tc-addr=%p, out-tc-addr=%p",
in_trace_class, out_trace_class);
BT_COMP_LOGD("Copying content of trace class: in-tc-addr=%p, out-tc-addr=%p",
in_trace_class, out_trace_class);
+ /*
+ * Safe to use the same value object because it's frozen at this
+ * point.
+ */
+ bt_trace_class_set_user_attributes(out_trace_class,
+ bt_trace_class_borrow_user_attributes_const(in_trace_class));
+
/* Use the same stream class ids as in the origin trace class. */
bt_trace_class_set_assigns_automatic_stream_class_id(out_trace_class,
BT_FALSE);
/* Use the same stream class ids as in the origin trace class. */
bt_trace_class_set_assigns_automatic_stream_class_id(out_trace_class,
BT_FALSE);
+ /*
+ * Safe to use the same value object because it's frozen at this
+ * point.
+ */
+ bt_clock_class_set_user_attributes(out_clock_class,
+ bt_clock_class_borrow_user_attributes_const(in_clock_class));
+
clock_class_description = bt_clock_class_get_description(in_clock_class);
if (clock_class_description) {
clock_class_description = bt_clock_class_get_description(in_clock_class);
if (clock_class_description) {
+ /*
+ * Safe to use the same value object because it's frozen at this
+ * point.
+ */
+ bt_stream_class_set_user_attributes(out_stream_class,
+ bt_stream_class_borrow_user_attributes_const(in_stream_class));
+
bt_stream_class_set_supports_packets(
out_stream_class,
bt_stream_class_supports_packets(in_stream_class),
bt_stream_class_set_supports_packets(
out_stream_class,
bt_stream_class_supports_packets(in_stream_class),
+ /*
+ * Safe to use the same value object because it's frozen at this
+ * point.
+ */
+ bt_event_class_set_user_attributes(out_event_class,
+ bt_event_class_borrow_user_attributes_const(in_event_class));
+
/* Copy event class loglevel. */
prop_avail = bt_event_class_get_log_level(in_event_class,
&ec_log_level);
/* Copy event class loglevel. */
prop_avail = bt_event_class_get_log_level(in_event_class,
&ec_log_level);
/* Iterate over all the members of the struct. */
for (i = 0; i < struct_member_count; i++) {
/* Iterate over all the members of the struct. */
for (i = 0; i < struct_member_count; i++) {
- const bt_field_class_structure_member *member;
+ const bt_field_class_structure_member *in_member;
+ bt_field_class_structure_member *out_member;
- const bt_field_class *member_fc;
+ const bt_field_class *in_member_fc;
bt_field_class *out_member_field_class;
bt_field_class *out_member_field_class;
- member = bt_field_class_structure_borrow_member_by_index_const(
+ in_member = bt_field_class_structure_borrow_member_by_index_const(
- member_fc = bt_field_class_structure_member_borrow_field_class_const(
- member);
- member_name = bt_field_class_structure_member_get_name(member);
+ in_member_fc = bt_field_class_structure_member_borrow_field_class_const(
+ in_member);
+ member_name = bt_field_class_structure_member_get_name(in_member);
BT_COMP_LOGD("Copying structure field class's field: "
"index=%" PRId64 ", "
"member-fc-addr=%p, field-name=\"%s\"",
BT_COMP_LOGD("Copying structure field class's field: "
"index=%" PRId64 ", "
"member-fc-addr=%p, field-name=\"%s\"",
- i, member_fc, member_name);
+ i, in_member_fc, member_name);
out_member_field_class = create_field_class_copy(md_maps,
out_member_field_class = create_field_class_copy(md_maps,
if (!out_member_field_class) {
BT_COMP_LOGE("Cannot copy structure field class's field: "
"index=%" PRId64 ", "
"field-fc-addr=%p, field-name=\"%s\"",
if (!out_member_field_class) {
BT_COMP_LOGE("Cannot copy structure field class's field: "
"index=%" PRId64 ", "
"field-fc-addr=%p, field-name=\"%s\"",
- i, member_fc, member_name);
+ i, in_member_fc, member_name);
- ret = copy_field_class_content(md_maps, member_fc,
+ ret = copy_field_class_content(md_maps, in_member_fc,
out_member_field_class);
if (ret) {
goto error;
out_member_field_class);
if (ret) {
goto error;
BT_COMP_LOGE("Cannot append structure field class's field: "
"index=%" PRId64 ", "
"field-fc-addr=%p, field-name=\"%s\"",
BT_COMP_LOGE("Cannot append structure field class's field: "
"index=%" PRId64 ", "
"field-fc-addr=%p, field-name=\"%s\"",
- i, member_fc, member_name);
+ i, in_member_fc, member_name);
BT_FIELD_CLASS_PUT_REF_AND_RESET(out_member_field_class);
ret = -1;
goto error;
}
BT_FIELD_CLASS_PUT_REF_AND_RESET(out_member_field_class);
ret = -1;
goto error;
}
+
+ out_member = bt_field_class_structure_borrow_member_by_index(
+ out_field_class, i);
+ BT_ASSERT(out_member);
+
+ /*
+ * Safe to use the same value object because it's frozen
+ * at this point.
+ */
+ bt_field_class_structure_member_set_user_attributes(
+ out_member,
+ bt_field_class_structure_member_borrow_user_attributes_const(
+ in_member));
}
BT_COMP_LOGD("Copied structure field class: original-fc-addr=%p, copy-fc-addr=%p",
}
BT_COMP_LOGD("Copied structure field class: original-fc-addr=%p, copy-fc-addr=%p",
variant_option_count =
bt_field_class_variant_get_option_count(in_field_class);
for (i = 0; i < variant_option_count; i++) {
variant_option_count =
bt_field_class_variant_get_option_count(in_field_class);
for (i = 0; i < variant_option_count; i++) {
- const bt_field_class *option_fc;
+ const bt_field_class *in_option_fc;
const char *option_name;
bt_field_class *out_option_field_class;
const char *option_name;
bt_field_class *out_option_field_class;
- const bt_field_class_variant_option *option;
+ const bt_field_class_variant_option *in_option;
+ bt_field_class_variant_option *out_option;
- option = bt_field_class_variant_borrow_option_by_index_const(
+ in_option = bt_field_class_variant_borrow_option_by_index_const(
- option_fc = bt_field_class_variant_option_borrow_field_class_const(
- option);
- option_name = bt_field_class_variant_option_get_name(option);
+ in_option_fc = bt_field_class_variant_option_borrow_field_class_const(
+ in_option);
+ option_name = bt_field_class_variant_option_get_name(in_option);
out_option_field_class = create_field_class_copy_internal(
out_option_field_class = create_field_class_copy_internal(
+ md_maps, in_option_fc);
if (!out_option_field_class) {
BT_COMP_LOGE_STR("Cannot copy field class.");
ret = -1;
goto error;
}
if (!out_option_field_class) {
BT_COMP_LOGE_STR("Cannot copy field class.");
ret = -1;
goto error;
}
- ret = copy_field_class_content_internal(md_maps, option_fc,
+ ret = copy_field_class_content_internal(md_maps, in_option_fc,
out_option_field_class);
if (ret) {
BT_COMP_LOGE_STR("Error copying content of option variant "
out_option_field_class);
if (ret) {
BT_COMP_LOGE_STR("Error copying content of option variant "
+
+ out_option = bt_field_class_variant_borrow_option_by_index(
+ out_field_class, i);
+ BT_ASSERT(out_option);
+
+ /*
+ * Safe to use the same value object because it's frozen
+ * at this point.
+ */
+ bt_field_class_variant_option_set_user_attributes(
+ out_option,
+ bt_field_class_variant_option_borrow_user_attributes_const(
+ in_option));
}
BT_COMP_LOGD("Copied content of variant field class: in-fc-addr=%p, "
}
BT_COMP_LOGD("Copied content of variant field class: in-fc-addr=%p, "
bt_field_class *out_field_class)
{
int ret = 0;
bt_field_class *out_field_class)
{
int ret = 0;
+
+ /*
+ * Safe to use the same value object because it's frozen at this
+ * point.
+ */
+ bt_field_class_set_user_attributes(out_field_class,
+ bt_field_class_borrow_user_attributes_const(in_field_class));
+
switch(bt_field_class_get_type(in_field_class)) {
case BT_FIELD_CLASS_TYPE_BOOL:
ret = field_class_bool_copy(md_maps,
switch(bt_field_class_get_type(in_field_class)) {
case BT_FIELD_CLASS_TYPE_BOOL:
ret = field_class_bool_copy(md_maps,