void bt_ctf_iter_destroy(struct bt_ctf_iter *iter) { struct bt_stream_callbacks *bt_stream_cb; 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); /* free per-event callbacks */ for (i = 0; i < iter->callbacks->len; i++) { bt_stream_cb = &g_array_index(iter->callbacks, struct bt_stream_callbacks, i); if (!bt_stream_cb || !bt_stream_cb->per_id_callbacks) continue; for (j = 0; j < bt_stream_cb->per_id_callbacks->len; j++) { bt_chain = &g_array_index(bt_stream_cb->per_id_callbacks, struct bt_callback_chain, j); if (bt_chain->callback) { g_array_free(bt_chain->callback, TRUE); } } g_array_free(bt_stream_cb->per_id_callbacks, TRUE); } g_array_free(iter->callbacks, TRUE); g_ptr_array_free(iter->dep_gc, TRUE); bt_iter_fini(&iter->parent); g_free(iter); }
void bt_iter_destroy(struct bt_iter *iter) { assert(iter); bt_iter_fini(iter); g_free(iter); }