event-rule: Normalize pattern for syscall and tracepoint
[lttng-tools.git] / src / common / event-field-value.c
index d7687880f6b8c575d0ae59584676848c29ce9745..b57c7c53e206fc249de919575583e04234aef923 100644 (file)
@@ -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(
This page took 0.02455 seconds and 4 git commands to generate.