X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=lib%2Fctf-ir%2Fstream-class.c;h=9ca8ffb4df7c2c1ef46fbb4876050a785ca2a199;hb=d975f66c5dcfc7eade13db3edbc975d2055dfe4b;hp=fe33b61d59af38f7335e14d737dfea851a8c05cd;hpb=8cd07f2c188a204dc61cebde12d5207ae99b1255;p=babeltrace.git diff --git a/lib/ctf-ir/stream-class.c b/lib/ctf-ir/stream-class.c index fe33b61d..9ca8ffb4 100644 --- a/lib/ctf-ir/stream-class.c +++ b/lib/ctf-ir/stream-class.c @@ -48,6 +48,8 @@ #include #include #include +#include +#include #include #include #include @@ -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) {