From: Philippe Proulx Date: Tue, 13 Aug 2019 22:43:18 +0000 (-0400) Subject: flt.lttng-utils.debug-info: copy bit array field class and field objects X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=commitdiff_plain;h=dc7ac07465ffde2ff6494c17dc6c14747e621b56 flt.lttng-utils.debug-info: copy bit array field class and field objects Signed-off-by: Philippe Proulx Change-Id: Iffb2083c21e57229e506577ab214cf6d8fc2da46 Reviewed-on: https://review.lttng.org/c/babeltrace/+/1908 Tested-by: jenkins Reviewed-by: Francis Deslauriers --- diff --git a/src/plugins/lttng-utils/debug-info/trace-ir-data-copy.c b/src/plugins/lttng-utils/debug-info/trace-ir-data-copy.c index 2d27b85b..e499ea3c 100644 --- a/src/plugins/lttng-utils/debug-info/trace-ir-data-copy.c +++ b/src/plugins/lttng-utils/debug-info/trace-ir-data-copy.c @@ -223,6 +223,10 @@ void copy_field_content(const bt_field *in_field, bt_field *out_field, bt_field_bool_set_value(out_field, bt_field_bool_get_value(in_field)); break; + case BT_FIELD_CLASS_TYPE_BIT_ARRAY: + bt_field_bit_array_set_value_as_integer(out_field, + bt_field_bit_array_get_value_as_integer(in_field)); + break; case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER: case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION: bt_field_integer_unsigned_set_value(out_field, diff --git a/src/plugins/lttng-utils/debug-info/trace-ir-metadata-field-class-copy.c b/src/plugins/lttng-utils/debug-info/trace-ir-metadata-field-class-copy.c index e82d96d8..2b1f4b04 100644 --- a/src/plugins/lttng-utils/debug-info/trace-ir-metadata-field-class-copy.c +++ b/src/plugins/lttng-utils/debug-info/trace-ir-metadata-field-class-copy.c @@ -176,6 +176,21 @@ int field_class_bool_copy( return 0; } +static inline +int field_class_bit_array_copy( + struct trace_ir_metadata_maps *md_maps, + const bt_field_class *in_field_class, + bt_field_class *out_field_class) +{ + BT_COMP_LOGD("Copying content of bit array field class: " + "in-fc-addr=%p, out-fc-addr=%p", + in_field_class, out_field_class); + BT_COMP_LOGD("Copied content of bit array field class: " + "in-fc-addr=%p, out-fc-addr=%p", + in_field_class, out_field_class); + return 0; +} + static inline int field_class_unsigned_integer_copy( struct trace_ir_metadata_maps *md_maps, @@ -608,6 +623,12 @@ bt_field_class *create_field_class_copy_internal(struct trace_ir_metadata_maps * out_field_class = bt_field_class_bool_create( md_maps->output_trace_class); break; + case BT_FIELD_CLASS_TYPE_BIT_ARRAY: + out_field_class = bt_field_class_bit_array_create( + md_maps->output_trace_class, + bt_field_class_bit_array_get_length( + in_field_class)); + break; case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER: out_field_class = bt_field_class_integer_unsigned_create( md_maps->output_trace_class); @@ -794,6 +815,10 @@ int copy_field_class_content_internal( ret = field_class_bool_copy(md_maps, in_field_class, out_field_class); break; + case BT_FIELD_CLASS_TYPE_BIT_ARRAY: + ret = field_class_bit_array_copy(md_maps, + in_field_class, out_field_class); + break; case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER: ret = field_class_unsigned_integer_copy(md_maps, in_field_class, out_field_class);