X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fevent-field-value.c;h=b57c7c53e206fc249de919575583e04234aef923;hb=e358ddd51a5be6017f524523ac10d7c17fb78f65;hp=d7687880f6b8c575d0ae59584676848c29ce9745;hpb=d28fcdec589e6f0c98fed2f6c094defec58e2b24;p=lttng-tools.git diff --git a/src/common/event-field-value.c b/src/common/event-field-value.c index d7687880f..b57c7c53e 100644 --- a/src/common/event-field-value.c +++ b/src/common/event-field-value.c @@ -387,13 +387,19 @@ lttng_event_field_value_unsigned_int_get_value( parent)->val; break; case LTTNG_EVENT_FIELD_VALUE_TYPE_UNSIGNED_ENUM: - *val = container_of( - container_of(field_val, - const struct lttng_event_field_value_enum, - parent), - const struct lttng_event_field_value_enum_uint, - parent)->val; + { + const struct lttng_event_field_value_enum *field_val_enum = container_of( + field_val, + const struct lttng_event_field_value_enum, + parent); + const struct lttng_event_field_value_enum_uint + *field_val_enum_uint = container_of( + field_val_enum, + const struct lttng_event_field_value_enum_uint, + parent); + *val = field_val_enum_uint->val; break; + } default: status = LTTNG_EVENT_FIELD_VALUE_STATUS_INVALID; goto end; @@ -423,13 +429,19 @@ lttng_event_field_value_signed_int_get_value( parent)->val; break; case LTTNG_EVENT_FIELD_VALUE_TYPE_SIGNED_ENUM: - *val = container_of( - container_of(field_val, - const struct lttng_event_field_value_enum, - parent), - const struct lttng_event_field_value_enum_int, - parent)->val; + { + const struct lttng_event_field_value_enum *field_val_enum = container_of( + field_val, + const struct lttng_event_field_value_enum, + parent); + const struct lttng_event_field_value_enum_int + *field_val_enum_uint = container_of( + field_val_enum, + const struct lttng_event_field_value_enum_int, + parent); + *val = field_val_enum_uint->val; break; + } default: status = LTTNG_EVENT_FIELD_VALUE_STATUS_INVALID; goto end; @@ -517,21 +529,23 @@ end: return ret; } -const char *lttng_event_field_value_string_get_value( - const struct lttng_event_field_value *field_val) +enum lttng_event_field_value_status lttng_event_field_value_string_get_value( + const struct lttng_event_field_value *field_val, + const char **value) { - const char *ret; + enum lttng_event_field_value_status status; if (!field_val || field_val->type != LTTNG_EVENT_FIELD_VALUE_TYPE_STRING) { - ret = NULL; + status = LTTNG_EVENT_FIELD_VALUE_STATUS_INVALID; goto end; } - ret = container_of(field_val, + *value = container_of(field_val, const struct lttng_event_field_value_string, parent)->val; + status = LTTNG_EVENT_FIELD_VALUE_STATUS_OK; end: - return ret; + return status; } enum lttng_event_field_value_status lttng_event_field_value_array_get_length(