X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Flib%2Fgraph%2Fmessage%2Fpacket.c;h=6798fe511b3f95dcd3b0eff4b06a806debb91e30;hb=43c59509042845f8d42c3e99ec74d45fa2dc0908;hp=63471f6040c1e17fc62c634db45048fa1ced2d69;hpb=870631a2db01676b476dbee615aade0a22926bcd;p=babeltrace.git diff --git a/src/lib/graph/message/packet.c b/src/lib/graph/message/packet.c index 63471f60..6798fe51 100644 --- a/src/lib/graph/message/packet.c +++ b/src/lib/graph/message/packet.c @@ -24,6 +24,8 @@ #define BT_LOG_TAG "LIB/MSG-PACKET" #include "lib/logging.h" +#include + #include "lib/assert-pre.h" #include "lib/assert-post.h" #include "compat/compiler.h" @@ -34,10 +36,7 @@ #include "lib/trace-ir/stream.h" #include "lib/trace-ir/stream-class.h" #include "lib/graph/graph.h" -#include -#include -#include -#include +#include #include "common/assert.h" #include "lib/object.h" #include @@ -83,7 +82,7 @@ struct bt_message *bt_message_packet_end_new(struct bt_graph *graph) static inline struct bt_message *create_packet_message( - struct bt_self_component_port_input_message_iterator *msg_iter, + struct bt_message_iterator *msg_iter, struct bt_packet *packet, struct bt_object_pool *pool, bool with_cs, uint64_t raw_value) { @@ -99,6 +98,12 @@ struct bt_message *create_packet_message( stream_class = bt_stream_borrow_class(stream); BT_ASSERT(stream_class); + /* + * It's not possible to create a packet from a stream of which + * the class indicates that packets are not supported. + */ + BT_ASSERT(stream_class->supports_packets); + if (pool == &msg_iter->graph->packet_begin_msg_pool) { need_cs = stream_class->packets_have_beginning_default_clock_snapshot; } else { @@ -137,7 +142,7 @@ struct bt_message *create_packet_message( message->default_cs = bt_clock_snapshot_create( stream_class->default_clock_class); if (!message->default_cs) { - bt_object_put_no_null_check(message); + bt_object_put_ref_no_null_check(message); message = NULL; goto end; } @@ -147,7 +152,7 @@ struct bt_message *create_packet_message( BT_ASSERT(!message->packet); message->packet = packet; - bt_object_get_no_null_check_no_parent_check( + bt_object_get_ref_no_null_check_no_parent_check( &message->packet->base); bt_packet_set_is_frozen(packet, true); BT_LIB_LOGD("Created packet message object: " @@ -163,9 +168,10 @@ struct bt_message *bt_message_packet_beginning_create( struct bt_self_message_iterator *self_msg_iter, const struct bt_packet *packet) { - struct bt_self_component_port_input_message_iterator *msg_iter = + struct bt_message_iterator *msg_iter = (void *) self_msg_iter; + BT_ASSERT_PRE_DEV_NO_ERROR(); BT_ASSERT_PRE_NON_NULL(msg_iter, "Message iterator"); return create_packet_message(msg_iter, (void *) packet, &msg_iter->graph->packet_begin_msg_pool, false, 0); @@ -175,9 +181,10 @@ struct bt_message *bt_message_packet_beginning_create_with_default_clock_snapsho struct bt_self_message_iterator *self_msg_iter, const struct bt_packet *packet, uint64_t raw_value) { - struct bt_self_component_port_input_message_iterator *msg_iter = + struct bt_message_iterator *msg_iter = (void *) self_msg_iter; + BT_ASSERT_PRE_DEV_NO_ERROR(); BT_ASSERT_PRE_NON_NULL(msg_iter, "Message iterator"); return create_packet_message(msg_iter, (void *) packet, &msg_iter->graph->packet_begin_msg_pool, true, raw_value); @@ -187,9 +194,10 @@ struct bt_message *bt_message_packet_end_create( struct bt_self_message_iterator *self_msg_iter, const struct bt_packet *packet) { - struct bt_self_component_port_input_message_iterator *msg_iter = + struct bt_message_iterator *msg_iter = (void *) self_msg_iter; + BT_ASSERT_PRE_DEV_NO_ERROR(); BT_ASSERT_PRE_NON_NULL(msg_iter, "Message iterator"); return create_packet_message(msg_iter, (void *) packet, &msg_iter->graph->packet_end_msg_pool, false, 0); @@ -199,9 +207,10 @@ struct bt_message *bt_message_packet_end_create_with_default_clock_snapshot( struct bt_self_message_iterator *self_msg_iter, const struct bt_packet *packet, uint64_t raw_value) { - struct bt_self_component_port_input_message_iterator *msg_iter = + struct bt_message_iterator *msg_iter = (void *) self_msg_iter; + BT_ASSERT_PRE_DEV_NO_ERROR(); BT_ASSERT_PRE_NON_NULL(msg_iter, "Message iterator"); return create_packet_message(msg_iter, (void *) packet, &msg_iter->graph->packet_end_msg_pool, true, raw_value); @@ -231,7 +240,7 @@ void recycle_packet_message(struct bt_message *msg, struct bt_object_pool *pool) BT_LIB_LOGD("Recycling packet message: %!+n", msg); bt_message_reset(msg); - bt_object_put_no_null_check(&packet_msg->packet->base); + bt_object_put_ref_no_null_check(&packet_msg->packet->base); if (packet_msg->default_cs) { bt_clock_snapshot_recycle(packet_msg->default_cs); @@ -274,8 +283,8 @@ struct bt_packet *bt_message_packet_beginning_borrow_packet( { struct bt_message_packet *packet_msg = (void *) message; - BT_ASSERT_PRE_NON_NULL(message, "Message"); - BT_ASSERT_PRE_MSG_IS_TYPE(message, + BT_ASSERT_PRE_DEV_NON_NULL(message, "Message"); + BT_ASSERT_PRE_DEV_MSG_IS_TYPE(message, BT_MESSAGE_TYPE_PACKET_BEGINNING); return packet_msg->packet; } @@ -292,8 +301,8 @@ struct bt_packet *bt_message_packet_end_borrow_packet( { struct bt_message_packet *packet_msg = (void *) message; - BT_ASSERT_PRE_NON_NULL(message, "Message"); - BT_ASSERT_PRE_MSG_IS_TYPE(message, + BT_ASSERT_PRE_DEV_NON_NULL(message, "Message"); + BT_ASSERT_PRE_DEV_MSG_IS_TYPE(message, BT_MESSAGE_TYPE_PACKET_END); return packet_msg->packet; } @@ -312,8 +321,9 @@ borrow_packet_message_default_clock_snapshot_const( { struct bt_message_packet *packet_msg = (void *) message; - BT_ASSERT(message); - BT_ASSERT_PRE(packet_msg->packet->stream->class->default_clock_class, + BT_ASSERT_DBG(message); + BT_ASSERT_PRE_DEV( + packet_msg->packet->stream->class->default_clock_class, "Message's stream's class has no default clock class: " "%![msg-]+n, %![sc-]+S", message, packet_msg->packet->stream->class); @@ -324,8 +334,8 @@ const struct bt_clock_snapshot * bt_message_packet_beginning_borrow_default_clock_snapshot_const( const struct bt_message *msg) { - BT_ASSERT_PRE_NON_NULL(msg, "Message"); - BT_ASSERT_PRE_MSG_IS_TYPE(msg, BT_MESSAGE_TYPE_PACKET_BEGINNING); + BT_ASSERT_PRE_DEV_NON_NULL(msg, "Message"); + BT_ASSERT_PRE_DEV_MSG_IS_TYPE(msg, BT_MESSAGE_TYPE_PACKET_BEGINNING); return borrow_packet_message_default_clock_snapshot_const(msg); } @@ -333,8 +343,8 @@ const struct bt_clock_snapshot * bt_message_packet_end_borrow_default_clock_snapshot_const( const struct bt_message *msg) { - BT_ASSERT_PRE_NON_NULL(msg, "Message"); - BT_ASSERT_PRE_MSG_IS_TYPE(msg, BT_MESSAGE_TYPE_PACKET_END); + BT_ASSERT_PRE_DEV_NON_NULL(msg, "Message"); + BT_ASSERT_PRE_DEV_MSG_IS_TYPE(msg, BT_MESSAGE_TYPE_PACKET_END); return borrow_packet_message_default_clock_snapshot_const(msg); } @@ -345,7 +355,7 @@ borrow_packet_message_stream_class_default_clock_class( { struct bt_message_packet *packet_msg = (void *) msg; - BT_ASSERT(msg); + BT_ASSERT_DBG(msg); return packet_msg->packet->stream->class->default_clock_class; } @@ -353,8 +363,8 @@ const struct bt_clock_class * bt_message_packet_beginning_borrow_stream_class_default_clock_class_const( const struct bt_message *msg) { - BT_ASSERT_PRE_NON_NULL(msg, "Message"); - BT_ASSERT_PRE_MSG_IS_TYPE(msg, BT_MESSAGE_TYPE_PACKET_BEGINNING); + BT_ASSERT_PRE_DEV_NON_NULL(msg, "Message"); + BT_ASSERT_PRE_DEV_MSG_IS_TYPE(msg, BT_MESSAGE_TYPE_PACKET_BEGINNING); return borrow_packet_message_stream_class_default_clock_class(msg); } @@ -362,7 +372,7 @@ const struct bt_clock_class * bt_message_packet_end_borrow_stream_class_default_clock_class_const( const struct bt_message *msg) { - BT_ASSERT_PRE_NON_NULL(msg, "Message"); - BT_ASSERT_PRE_MSG_IS_TYPE(msg, BT_MESSAGE_TYPE_PACKET_END); + BT_ASSERT_PRE_DEV_NON_NULL(msg, "Message"); + BT_ASSERT_PRE_DEV_MSG_IS_TYPE(msg, BT_MESSAGE_TYPE_PACKET_END); return borrow_packet_message_stream_class_default_clock_class(msg); }