X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=formats%2Fctf%2Fir%2Fstream.c;h=298749240dbefa052eb2b6bd5a104512db1ac6bd;hb=de3dd40e6fcad56e227f5fc8a8290fbaa88b4e07;hp=047fc2925e19e3e79af185389f9b9fa22833125a;hpb=40e99cb3fc31b1aa956fcade62a411f3c4e96cd9;p=babeltrace.git diff --git a/formats/ctf/ir/stream.c b/formats/ctf/ir/stream.c index 047fc292..29874924 100644 --- a/formats/ctf/ir/stream.c +++ b/formats/ctf/ir/stream.c @@ -35,13 +35,15 @@ #include #include #include +#include +#include #include #include #include #include static -void bt_ctf_stream_destroy(struct bt_ctf_ref *ref); +void bt_ctf_stream_destroy(struct bt_ref *ref); static int set_structure_field_integer(struct bt_ctf_field *, char *, uint64_t); @@ -272,7 +274,7 @@ struct bt_ctf_stream *bt_ctf_stream_create( /* A stream has no ownership of its trace (weak ptr) */ stream->trace = trace; - bt_ctf_ref_init(&stream->ref_count); + bt_ctf_base_init(stream, bt_ctf_stream_destroy); stream->packet_context = bt_ctf_field_create( stream_class->packet_context_type); if (!stream->packet_context) { @@ -338,7 +340,7 @@ struct bt_ctf_stream *bt_ctf_stream_create( end: return stream; error_destroy: - bt_ctf_stream_destroy(&stream->ref_count); + bt_ctf_stream_destroy(&stream->base.ref_count); return NULL; } @@ -897,32 +899,26 @@ end: void bt_ctf_stream_get(struct bt_ctf_stream *stream) { - if (!stream) { - return; - } - - bt_ctf_ref_get(&stream->ref_count); + bt_ctf_get(stream); } void bt_ctf_stream_put(struct bt_ctf_stream *stream) { - if (!stream) { - return; - } - - bt_ctf_ref_put(&stream->ref_count, bt_ctf_stream_destroy); + bt_ctf_put(stream); } static -void bt_ctf_stream_destroy(struct bt_ctf_ref *ref) +void bt_ctf_stream_destroy(struct bt_ref *ref) { struct bt_ctf_stream *stream; + struct bt_ctf_base *base; if (!ref) { return; } - stream = container_of(ref, struct bt_ctf_stream, ref_count); + base = container_of(ref, struct bt_ctf_base, ref_count); + stream = container_of(base, struct bt_ctf_stream, base); ctf_fini_pos(&stream->pos); if (stream->pos.fd >= 0 && close(stream->pos.fd)) { perror("close");