X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Flib%2Ftrace-ir%2Fpacket.c;h=388e196f268f6b0451433ceab8099277b33a1bf8;hb=43c59509042845f8d42c3e99ec74d45fa2dc0908;hp=78fb18a2a80f321f2b65c2b7a83181c81c09d930;hpb=bdb288b3e94e412a33c8647d44f6cfac66ca0665;p=babeltrace.git diff --git a/src/lib/trace-ir/packet.c b/src/lib/trace-ir/packet.c index 78fb18a2..388e196f 100644 --- a/src/lib/trace-ir/packet.c +++ b/src/lib/trace-ir/packet.c @@ -24,7 +24,6 @@ #include "lib/logging.h" #include "lib/assert-pre.h" -#include #include #include #include @@ -32,6 +31,7 @@ #include "lib/object.h" #include "common/assert.h" #include +#include #include "field.h" #include "field-wrapper.h" @@ -144,7 +144,7 @@ void bt_packet_recycle(struct bt_packet *packet) BT_ASSERT(stream); packet->stream = NULL; bt_object_pool_recycle_object(&stream->packet_pool, packet); - bt_object_put_no_null_check(&stream->base); + bt_object_put_ref_no_null_check(&stream->base); } BT_HIDDEN @@ -187,7 +187,7 @@ struct bt_packet *bt_packet_new(struct bt_stream *stream) bt_object_init_shared(&packet->base, (bt_object_release_func) bt_packet_recycle); packet->stream = stream; - bt_object_get_no_null_check(stream); + bt_object_get_ref_no_null_check(stream); trace_class = bt_stream_class_borrow_trace_class_inline(stream->class); BT_ASSERT(trace_class); @@ -218,6 +218,7 @@ struct bt_packet *bt_packet_create(const struct bt_stream *c_stream) struct bt_packet *packet = NULL; struct bt_stream *stream = (void *) c_stream; + BT_ASSERT_PRE_NO_ERROR(); BT_ASSERT_PRE_NON_NULL(stream, "Stream"); BT_ASSERT_PRE(stream->class->supports_packets, "Stream class does not support packets: %![sc-]+S", @@ -232,7 +233,7 @@ struct bt_packet *bt_packet_create(const struct bt_stream *c_stream) if (G_LIKELY(!packet->stream)) { packet->stream = stream; - bt_object_get_no_null_check_no_parent_check( + bt_object_get_ref_no_null_check_no_parent_check( &packet->stream->base); } @@ -240,35 +241,6 @@ end: return (void *) packet; } -enum bt_packet_move_context_field_status bt_packet_move_context_field( - struct bt_packet *packet, - struct bt_packet_context_field *context_field) -{ - struct bt_stream_class *stream_class; - struct bt_field_wrapper *field_wrapper = (void *) context_field; - - BT_ASSERT_PRE_DEV_NON_NULL(packet, "Packet"); - BT_ASSERT_PRE_DEV_NON_NULL(field_wrapper, "Context field"); - BT_ASSERT_PRE_DEV_HOT(packet, "Packet", ": %!+a", packet); - stream_class = packet->stream->class; - BT_ASSERT_PRE_DEV(stream_class->packet_context_fc, - "Stream class has no packet context field class: %!+S", - stream_class); - BT_ASSERT_PRE_DEV(field_wrapper->field->class == - stream_class->packet_context_fc, - "Unexpected packet context field's class: " - "%![fc-]+F, %![expected-fc-]+F", field_wrapper->field->class, - stream_class->packet_context_fc); - - /* Recycle current context field: always exists */ - BT_ASSERT(packet->context_field); - recycle_context_field(packet->context_field, stream_class); - - /* Move new field */ - packet->context_field = field_wrapper; - return BT_FUNC_STATUS_OK; -} - void bt_packet_get_ref(const struct bt_packet *packet) { bt_object_get_ref(packet);