- tbl = sam_header2tbl(h->dict, "SQ", "SN", "LN");
- h->n_targets = sam_tbl_size(tbl);
- if (h->n_targets == 0) {
- sam_tbl_destroy(tbl);
- return 0;
- }
- h->target_len = (uint32_t*)calloc(h->n_targets, 4);
- h->target_name = (char**)calloc(h->n_targets, sizeof(void*));
- tmp = (char**)calloc(h->n_targets, sizeof(void*));
- sam_tbl_pair(tbl, h->target_name, tmp);
+ tmp = sam_header2list(h->dict, "SQ", "SN", &h->n_targets);
+ if (h->n_targets == 0) return 0;
+ h->target_name = calloc(h->n_targets, sizeof(void*));
+ for (i = 0; i < h->n_targets; ++i)
+ h->target_name[i] = strdup(tmp[i]);
+ free(tmp);
+ tmp = sam_header2list(h->dict, "SQ", "LN", &h->n_targets);
+ h->target_len = calloc(h->n_targets, 4);