lib: metadata: transform fast path precond. checks to BT_ASSERT_PRE()
[babeltrace.git] / lib / ctf-ir / stream-class.c
index fe33b61d59af38f7335e14d737dfea851a8c05cd..9ca8ffb4df7c2c1ef46fbb4876050a785ca2a199 100644 (file)
@@ -48,6 +48,8 @@
 #include <babeltrace/compiler-internal.h>
 #include <babeltrace/align-internal.h>
 #include <babeltrace/endian-internal.h>
+#include <babeltrace/assert-internal.h>
+#include <babeltrace/assert-pre-internal.h>
 #include <inttypes.h>
 #include <stdint.h>
 #include <stdbool.h>
@@ -132,24 +134,15 @@ error:
 struct bt_trace *bt_stream_class_get_trace(
                struct bt_stream_class *stream_class)
 {
-       return stream_class ?
-               bt_get(bt_stream_class_borrow_trace(stream_class)) :
-               NULL;
+       BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class");
+       return bt_get(bt_stream_class_borrow_trace(stream_class));
 }
 
 const char *bt_stream_class_get_name(
                struct bt_stream_class *stream_class)
 {
-       const char *name = NULL;
-
-       if (!stream_class) {
-               BT_LOGW_STR("Invalid parameter: stream class is NULL.");
-               goto end;
-       }
-
-       name = stream_class->name->len > 0 ? stream_class->name->str : NULL;
-end:
-       return name;
+       BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class");
+       return stream_class->name->len > 0 ? stream_class->name->str : NULL;
 }
 
 int bt_stream_class_set_name(struct bt_stream_class *stream_class,
@@ -258,11 +251,7 @@ int64_t bt_stream_class_get_id(struct bt_stream_class *stream_class)
 {
        int64_t ret;
 
-       if (!stream_class) {
-               BT_LOGW_STR("Invalid parameter: stream class is NULL.");
-               ret = (int64_t) -1;
-               goto end;
-       }
+       BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class");
 
        if (!stream_class->id_set) {
                BT_LOGV("Stream class's ID is not set: addr=%p, name=\"%s\"",
@@ -273,6 +262,7 @@ int64_t bt_stream_class_get_id(struct bt_stream_class *stream_class)
        }
 
        ret = stream_class->id;
+
 end:
        return ret;
 }
@@ -281,7 +271,7 @@ BT_HIDDEN
 void _bt_stream_class_set_id(
                struct bt_stream_class *stream_class, int64_t id)
 {
-       assert(stream_class);
+       BT_ASSERT(stream_class);
        stream_class->id = id;
        stream_class->id_set = 1;
        BT_LOGV("Set stream class's ID (internal): "
@@ -512,8 +502,8 @@ int bt_stream_class_add_event_class(
                 * The trace and stream class should be valid at this
                 * point.
                 */
-               assert(trace->valid);
-               assert(stream_class->valid);
+               BT_ASSERT(trace->valid);
+               BT_ASSERT(stream_class->valid);
                packet_header_type =
                        bt_trace_get_packet_header_type(trace);
                packet_context_type =
@@ -614,7 +604,7 @@ int bt_stream_class_add_event_class(
         * now if the stream class is frozen.
         */
        if (stream_class->frozen && expected_clock_class) {
-               assert(!stream_class->clock_class ||
+               BT_ASSERT(!stream_class->clock_class ||
                        stream_class->clock_class == expected_clock_class);
                BT_MOVE(stream_class->clock_class, expected_clock_class);
        }
@@ -642,12 +632,12 @@ end:
        BT_PUT(old_stream_class);
        bt_validation_output_put_types(&validation_output);
        bt_put(expected_clock_class);
-       assert(!packet_header_type);
-       assert(!packet_context_type);
-       assert(!event_header_type);
-       assert(!stream_event_ctx_type);
-       assert(!event_context_type);
-       assert(!event_payload_type);
+       BT_ASSERT(!packet_header_type);
+       BT_ASSERT(!packet_context_type);
+       BT_ASSERT(!event_header_type);
+       BT_ASSERT(!stream_event_ctx_type);
+       BT_ASSERT(!event_context_type);
+       BT_ASSERT(!event_payload_type);
        g_free(event_id);
 
        return ret;
@@ -672,71 +662,31 @@ end:
 struct bt_event_class *bt_stream_class_get_event_class_by_index(
                struct bt_stream_class *stream_class, uint64_t index)
 {
-       struct bt_event_class *event_class = NULL;
-
-       if (!stream_class) {
-               BT_LOGW_STR("Invalid parameter: stream class is NULL.");
-               goto end;
-       }
-
-       if (index >= stream_class->event_classes->len) {
-               BT_LOGW("Invalid parameter: index is out of bounds: "
-                       "addr=%p, name=\"%s\", id=%" PRId64 ", "
-                       "index=%" PRIu64 ", count=%u",
-                       stream_class, bt_stream_class_get_name(stream_class),
-                       bt_stream_class_get_id(stream_class),
-                       index, stream_class->event_classes->len);
-               goto end;
-       }
-
-       event_class = g_ptr_array_index(stream_class->event_classes, index);
-       bt_get(event_class);
-end:
-       return event_class;
+       BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class");
+       BT_ASSERT_PRE(index < stream_class->event_classes->len,
+               "Index is out of bounds: index=%" PRIu64 ", "
+               "count=%u",
+               index, stream_class->event_classes->len);
+       return bt_get(g_ptr_array_index(stream_class->event_classes, index));
 }
 
 struct bt_event_class *bt_stream_class_get_event_class_by_id(
                struct bt_stream_class *stream_class, uint64_t id)
 {
        int64_t id_key = (int64_t) id;
-       struct bt_event_class *event_class = NULL;
 
-       if (!stream_class) {
-               BT_LOGW_STR("Invalid parameter: stream class is NULL.");
-               goto end;
-       }
-
-       if (id_key < 0) {
-               BT_LOGW("Invalid parameter: invalid event class's ID: "
-                       "stream-class-addr=%p, stream-class-name=\"%s\", "
-                       "stream-class-id=%" PRId64 ", event-class-id=%" PRIu64,
-                       stream_class,
-                       bt_stream_class_get_name(stream_class),
-                       bt_stream_class_get_id(stream_class), id);
-               goto end;
-       }
-
-       event_class = g_hash_table_lookup(stream_class->event_classes_ht,
-                       &id_key);
-       bt_get(event_class);
-end:
-       return event_class;
+       BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class");
+       BT_ASSERT_PRE(id_key >= 0,
+               "Invalid event class ID: %" PRIu64, id);
+       return bt_get(g_hash_table_lookup(stream_class->event_classes_ht,
+                       &id_key));
 }
 
 struct bt_field_type *bt_stream_class_get_packet_context_type(
                struct bt_stream_class *stream_class)
 {
-       struct bt_field_type *ret = NULL;
-
-       if (!stream_class) {
-               BT_LOGW_STR("Invalid parameter: stream class is NULL.");
-               goto end;
-       }
-
-       bt_get(stream_class->packet_context_type);
-       ret = stream_class->packet_context_type;
-end:
-       return ret;
+       BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class");
+       return bt_get(stream_class->packet_context_type);
 }
 
 int bt_stream_class_set_packet_context_type(
@@ -795,10 +745,7 @@ struct bt_field_type *bt_stream_class_get_event_header_type(
 {
        struct bt_field_type *ret = NULL;
 
-       if (!stream_class) {
-               BT_LOGW_STR("Invalid parameter: stream class is NULL.");
-               goto end;
-       }
+       BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class");
 
        if (!stream_class->event_header_type) {
                BT_LOGV("Stream class has no event header field type: "
@@ -808,8 +755,8 @@ struct bt_field_type *bt_stream_class_get_event_header_type(
                goto end;
        }
 
-       bt_get(stream_class->event_header_type);
-       ret = stream_class->event_header_type;
+       ret = bt_get(stream_class->event_header_type);
+
 end:
        return ret;
 }
@@ -868,17 +815,14 @@ struct bt_field_type *bt_stream_class_get_event_context_type(
 {
        struct bt_field_type *ret = NULL;
 
-       if (!stream_class) {
-               BT_LOGW_STR("Invalid parameter: stream class is NULL.");
-               goto end;
-       }
+       BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class");
 
        if (!stream_class->event_context_type) {
                goto end;
        }
 
-       bt_get(stream_class->event_context_type);
-       ret = stream_class->event_context_type;
+       ret = bt_get(stream_class->event_context_type);
+
 end:
        return ret;
 }
@@ -1045,7 +989,7 @@ int bt_stream_class_serialize(struct bt_stream_class *stream_class,
         * and serialization.
         */
        trace = bt_stream_class_borrow_trace(stream_class);
-       assert(trace);
+       BT_ASSERT(trace);
        packet_header_type = bt_trace_get_packet_header_type(trace);
        trace = NULL;
        if (packet_header_type) {
@@ -1288,14 +1232,14 @@ int try_map_clock_class(struct bt_stream_class *stream_class,
                bt_field_type_structure_get_field_type_by_name(parent_ft,
                        field_name);
 
-       assert(stream_class->clock);
+       BT_ASSERT(stream_class->clock);
 
        if (!ft) {
                /* Field does not exist: not an error */
                goto end;
        }
 
-       assert(bt_field_type_is_integer(ft));
+       BT_ASSERT(bt_field_type_is_integer(ft));
        mapped_clock_class =
                bt_field_type_integer_get_mapped_clock_class(ft);
        if (!mapped_clock_class) {
@@ -1319,7 +1263,7 @@ int try_map_clock_class(struct bt_stream_class *stream_class,
 
                ret = bt_field_type_integer_set_mapped_clock_class_no_check(
                        ft_copy, stream_class->clock->clock_class);
-               assert(ret == 0);
+               BT_ASSERT(ret == 0);
                ret = bt_field_type_structure_replace_field(parent_ft,
                        field_name, ft_copy);
                bt_put(ft_copy);
@@ -1345,7 +1289,7 @@ int bt_stream_class_map_clock_class(
 {
        int ret = 0;
 
-       assert(stream_class);
+       BT_ASSERT(stream_class);
 
        if (!stream_class->clock) {
                /* No clock class to map to */
@@ -1389,8 +1333,8 @@ int bt_stream_class_validate_single_clock_class(
        int ret;
        uint64_t i;
 
-       assert(stream_class);
-       assert(expected_clock_class);
+       BT_ASSERT(stream_class);
+       BT_ASSERT(expected_clock_class);
        ret = bt_validate_single_clock_class(stream_class->packet_context_type,
                expected_clock_class);
        if (ret) {
@@ -1446,7 +1390,7 @@ int bt_stream_class_validate_single_clock_class(
                struct bt_event_class *event_class =
                        g_ptr_array_index(stream_class->event_classes, i);
 
-               assert(event_class);
+               BT_ASSERT(event_class);
                ret = bt_event_class_validate_single_clock_class(event_class,
                        expected_clock_class);
                if (ret) {
This page took 0.029007 seconds and 4 git commands to generate.