X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=formats%2Fctf%2Fir%2Fevent-fields.c;h=00c38c1f72a2a8236b89cf27cd8d6dd916c1fe04;hp=29c5397f7d2fe9406afbc3c90c6d567ca5c46eef;hb=3f4a108db93fa672654a73aa87b34969c8097eed;hpb=8bdcb82e988e2cbdc063880ff6a2c6a550789495 diff --git a/formats/ctf/ir/event-fields.c b/formats/ctf/ir/event-fields.c index 29c5397f..00c38c1f 100644 --- a/formats/ctf/ir/event-fields.c +++ b/formats/ctf/ir/event-fields.c @@ -652,6 +652,31 @@ end: return new_field; } +struct bt_ctf_field *bt_ctf_field_variant_get_current_field( + struct bt_ctf_field *variant_field) +{ + struct bt_ctf_field *current_field = NULL; + struct bt_ctf_field_variant *variant; + + if (!variant_field || + bt_ctf_field_type_get_type_id(variant_field->type) != + CTF_TYPE_VARIANT) { + goto end; + } + + variant = container_of(variant_field, struct bt_ctf_field_variant, + parent); + + if (variant->payload) { + current_field = variant->payload; + bt_ctf_field_get(current_field); + goto end; + } + +end: + return current_field; +} + struct bt_ctf_field *bt_ctf_field_enumeration_get_container( struct bt_ctf_field *field) {