void gt_orphanage_delete(GtOrphanage *o) { if (!o) return; gt_cstr_table_delete(o->orphan_ids); gt_cstr_table_delete(o->missing_parents); while (gt_queue_size(o->orphans)) gt_genome_node_delete(gt_queue_get(o->orphans)); gt_queue_delete(o->orphans); gt_free(o); }
void gth_region_factory_delete(GthRegionFactory *srf) { if (!srf) return; gt_cstr_table_delete(srf->used_seqids); seqid_store_delete(srf->seqid_store); gt_free(srf); }
static int gt_seqids_runner(GT_UNUSED int argc, const char **argv, int parsed_args, GT_UNUSED void *tool_arguments, GtError *err) { GtNodeStream *in_stream, *v_stream; GtCstrTable *cst; int had_err = 0; gt_error_check(err); cst = gt_cstr_table_new(); in_stream = gt_gff3_in_stream_new_unsorted(argc - parsed_args, argv + parsed_args); v_stream = gt_visitor_stream_new(in_stream, gt_collect_ids_visitor_new(cst)); had_err = gt_node_stream_pull(v_stream, err); if (!had_err) { GtStrArray *seqids; GtUword i; seqids = gt_cstr_table_get_all(cst); for (i = 0; i < gt_str_array_size(seqids); i++) { printf("%s\n", gt_str_array_get(seqids, i)); } gt_str_array_delete(seqids); } gt_node_stream_delete(v_stream); gt_node_stream_delete(in_stream); gt_cstr_table_delete(cst); return had_err; }
static void add_ids_visitor_free(GtNodeVisitor *nv) { GtAddIDsVisitor *add_ids_visitor = add_ids_visitor_cast(nv); gt_hashmap_delete(add_ids_visitor->undefined_sequence_regions); gt_cstr_table_delete(add_ids_visitor->defined_seqids); gt_queue_delete(add_ids_visitor->node_buffer); }
static GtCstrTable* gt_rdb_mysql_get_indexes(GtRDB *rdb, GtError *err) { GT_UNUSED GtRDBMySQL *rdbm; GtRDBStmt *stmt; GtCstrTable *tab; int rval = 0; gt_assert(rdb); gt_error_check(err); rdbm = gt_rdb_mysql_cast(rdb); /* TODO: implement a way to do this in MySQL 4 */ if ((stmt = gt_rdb_prepare(rdb, "SELECT DISTINCT INDEX_NAME " "FROM INFORMATION_SCHEMA.STATISTICS ", 0, err)) == NULL) return NULL; tab = gt_cstr_table_new(); while (!rval) { GtStr *key; rval = gt_rdb_stmt_exec(stmt, err); if (rval) break; key = gt_str_new(); gt_rdb_stmt_get_string(stmt, 0, key, err); gt_cstr_table_add(tab, gt_str_get(key)); gt_str_delete(key); } if (rval < 0) { gt_cstr_table_delete(tab); gt_rdb_stmt_delete(stmt); return NULL; } gt_rdb_stmt_delete(stmt); return tab; }
static void sequence_node_add_stream_free(GtNodeStream *ns) { GtSequenceNodeAddStream *fs = gt_sequence_node_add_stream_cast(ns); gt_node_visitor_delete(fs->collect_vis); gt_cstr_table_delete(fs->seqid_table); gt_str_array_delete(fs->seqids); gt_node_stream_delete(fs->in_stream); }
static void gff3_visitor_free(GtNodeVisitor *nv) { GtGFF3Visitor *gff3_visitor = gff3_visitor_cast(nv); gt_assert(gff3_visitor); gt_string_distri_delete(gff3_visitor->id_counter); gt_hashmap_delete(gff3_visitor->feature_node_to_id_array); gt_hashmap_delete(gff3_visitor->feature_node_to_unique_id_str); gt_cstr_table_delete(gff3_visitor->used_ids); }
static void stat_visitor_free(GtNodeVisitor *nv) { GtStatVisitor *sv = stat_visitor_cast(nv); gt_cstr_table_delete(sv->used_sources); gt_disc_distri_delete(sv->cds_length_distribution); gt_disc_distri_delete(sv->intron_length_distribution); gt_disc_distri_delete(sv->exon_number_distribution); gt_disc_distri_delete(sv->exon_length_distribution); gt_disc_distri_delete(sv->gene_score_distribution); gt_disc_distri_delete(sv->gene_length_distribution); }
static void gff3_in_stream_plain_free(GtNodeStream *ns) { GtGFF3InStreamPlain *gff3_in_stream_plain = gff3_in_stream_plain_cast(ns); gt_str_array_delete(gff3_in_stream_plain->files); gt_str_delete(gff3_in_stream_plain->stdinstr); while (gt_queue_size(gff3_in_stream_plain->genome_node_buffer)) { gt_genome_node_delete(gt_queue_get(gff3_in_stream_plain ->genome_node_buffer)); } gt_queue_delete(gff3_in_stream_plain->genome_node_buffer); gt_gff3_parser_delete(gff3_in_stream_plain->gff3_parser); gt_cstr_table_delete(gff3_in_stream_plain->used_types); gt_file_delete(gff3_in_stream_plain->fpin); }
void gt_symbol_clean(void) { gt_cstr_table_delete(symbols); gt_mutex_delete(symbol_mutex); }