X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=lib%2Fctf-ir%2Ffield-types.c;h=be3e2d0f5c9c54f13690384a79e739c86ef15665;hp=c2a5383ccc86cb71f8d5f602c7cfee7dc46f2b41;hb=bdff256c6ce6d8ccb873050b51480f9abf1435cc;hpb=b6a0d2d9bd21345c993fe7d1c9dee5ec17d15b0c diff --git a/lib/ctf-ir/field-types.c b/lib/ctf-ir/field-types.c index c2a5383c..be3e2d0f 100644 --- a/lib/ctf-ir/field-types.c +++ b/lib/ctf-ir/field-types.c @@ -2997,6 +2997,15 @@ int bt_field_type_get_alignment(struct bt_field_type *type) ret = (int) type->alignment; break; } + case BT_FIELD_TYPE_ID_ENUM: + { + struct bt_field_type *container = + bt_field_type_enumeration_get_container_type(type); + + ret = bt_field_type_get_alignment(container); + bt_put(container); + break; + } case BT_FIELD_TYPE_ID_UNKNOWN: BT_LOGW("Invalid parameter: unknown field type ID: " "addr=%p, ft-id=%d", type, type_id); @@ -3725,6 +3734,7 @@ void bt_field_type_enumeration_freeze(struct bt_field_type *type) type, struct bt_field_type_enumeration, parent); BT_LOGD("Freezing enumeration field type object: addr=%p", type); + type->alignment = bt_field_type_get_alignment(type); set_enumeration_range_overlap(type); generic_field_type_freeze(type); BT_LOGD("Freezing enumeration field type object's container field type: int-ft-addr=%p",