projects
/
babeltrace.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: invalid alignment of enumeration fields
[babeltrace.git]
/
lib
/
ctf-ir
/
field-types.c
diff --git
a/lib/ctf-ir/field-types.c
b/lib/ctf-ir/field-types.c
index c2a5383ccc86cb71f8d5f602c7cfee7dc46f2b41..be3e2d0f5c9c54f13690384a79e739c86ef15665 100644
(file)
--- 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;
}
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);
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, 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",
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",
This page took
0.022902 seconds
and
4
git commands to generate.