Force usage of assert() condition when NDEBUG is defined
[lttng-tools.git] / src / common / event-field-value.c
index d7687880f6b8c575d0ae59584676848c29ce9745..2babd3de16f70503e7f0d9bc17d7c86d0388dedf 100644 (file)
@@ -10,7 +10,6 @@
  */
 
 #define _LGPL_SOURCE
-#include <assert.h>
 #include <stddef.h>
 #include <stdbool.h>
 
@@ -190,7 +189,7 @@ struct lttng_event_field_value *lttng_event_field_value_string_create_with_size(
                goto error;
        }
 
-       assert(val);
+       LTTNG_ASSERT(val);
        field_val->val = strndup(val, size);
        if (!field_val->val) {
                goto error;
@@ -209,7 +208,7 @@ LTTNG_HIDDEN
 struct lttng_event_field_value *lttng_event_field_value_string_create(
                const char *val)
 {
-       assert(val);
+       LTTNG_ASSERT(val);
        return lttng_event_field_value_string_create_with_size(val,
                        strlen(val));
 }
@@ -298,8 +297,8 @@ int lttng_event_field_value_enum_append_label_with_size(
        int ret;
        char *new_label;
 
-       assert(field_val);
-       assert(label);
+       LTTNG_ASSERT(field_val);
+       LTTNG_ASSERT(label);
        new_label = strndup(label, size);
        if (!new_label) {
                ret = -1;
@@ -324,7 +323,7 @@ int lttng_event_field_value_enum_append_label(
                struct lttng_event_field_value *field_val,
                const char *label)
 {
-       assert(label);
+       LTTNG_ASSERT(label);
        return lttng_event_field_value_enum_append_label_with_size(field_val,
                        label, strlen(label));
 }
@@ -334,8 +333,8 @@ int lttng_event_field_value_array_append(
                struct lttng_event_field_value *array_field_val,
                struct lttng_event_field_value *field_val)
 {
-       assert(array_field_val);
-       assert(field_val);
+       LTTNG_ASSERT(array_field_val);
+       LTTNG_ASSERT(field_val);
        return lttng_dynamic_pointer_array_add_pointer(
                        &container_of(array_field_val,
                                struct lttng_event_field_value_array, parent)->elems,
@@ -346,7 +345,7 @@ LTTNG_HIDDEN
 int lttng_event_field_value_array_append_unavailable(
                struct lttng_event_field_value *array_field_val)
 {
-       assert(array_field_val);
+       LTTNG_ASSERT(array_field_val);
        return lttng_dynamic_pointer_array_add_pointer(
                        &container_of(array_field_val,
                                struct lttng_event_field_value_array, parent)->elems,
@@ -387,13 +386,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 +428,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 +528,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.025919 seconds and 4 git commands to generate.