X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=formats%2Fctf%2Fiterator.c;fp=formats%2Fctf%2Fiterator.c;h=ec74e59029381e73acc5cbf97a7c43ae4889fedf;hp=f7b25f158884827459d7de0b8286832c60b3a33e;hb=7f89ddce05f0a5c985d6333fbe70a992da4bd244;hpb=09349576c27925daab50630bff7d219eebc8df98 diff --git a/formats/ctf/iterator.c b/formats/ctf/iterator.c index f7b25f15..ec74e590 100644 --- a/formats/ctf/iterator.c +++ b/formats/ctf/iterator.c @@ -38,6 +38,9 @@ struct bt_ctf_iter *bt_ctf_iter_create(struct bt_context *ctx, struct bt_ctf_iter *iter; int ret; + if (!ctx) + return NULL; + iter = g_new0(struct bt_ctf_iter, 1); ret = bt_iter_init(&iter->parent, ctx, begin_pos, end_pos); if (ret) { @@ -57,6 +60,8 @@ void bt_ctf_iter_destroy(struct bt_ctf_iter *iter) struct bt_callback_chain *bt_chain; int i, j; + assert(iter); + /* free all events callbacks */ if (iter->main_callbacks.callback) g_array_free(iter->main_callbacks.callback, TRUE); @@ -83,15 +88,25 @@ void bt_ctf_iter_destroy(struct bt_ctf_iter *iter) struct bt_iter *bt_ctf_get_iter(struct bt_ctf_iter *iter) { + if (!iter) + return NULL; + return &iter->parent; } struct bt_ctf_event *bt_ctf_iter_read_event(struct bt_ctf_iter *iter) { struct ctf_file_stream *file_stream; - struct bt_ctf_event *ret = &iter->current_ctf_event; + struct bt_ctf_event *ret; struct ctf_stream_definition *stream; + /* + * We do not want to fail for any other reason than end of + * trace, hence the assert. + */ + assert(iter); + + ret = &iter->current_ctf_event; file_stream = heap_maximum(iter->parent.stream_heap); if (!file_stream) { /* end of file for all streams */