X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bam_rmdupse.c;h=e7dbdc77d05f05d9c9622b484557df3504d6f4c1;hb=70c740facc966321754c6bfcc6d61ea056480638;hp=149d844c976dbe3b0561b61656e29a0fa7dd5255;hpb=8bee1f18418f068dc0d73ad6ec47084c2f830b32;p=samtools.git diff --git a/bam_rmdupse.c b/bam_rmdupse.c index 149d844..e7dbdc7 100644 --- a/bam_rmdupse.c +++ b/bam_rmdupse.c @@ -53,7 +53,8 @@ static inline elem_t *push_queue(queue_t *queue, const bam1_t *b, int endpos, in elem_t *p = kl_pushp(q, queue); p->discarded = 0; p->endpos = endpos; p->score = score; - p->b = bam_dup1(b); + if (p->b == 0) p->b = bam_init1(); + bam_copy1(p->b, b); return p; } @@ -116,13 +117,11 @@ void bam_rmdupse_core(samfile_t *in, samfile_t *out, int force_se) push_queue(queue, b, endpos, score); } else { const char *lib; - const uint8_t *rg; lib_aux_t *q; besthash_t *h; uint32_t key; int ret; - rg = bam_aux_get(b, "RG"); - lib = (rg == 0)? 0 : bam_strmap_get(in->header->rg2lib, (char*)(rg + 1)); + lib = bam_get_library(in->header, b); q = lib? get_aux(aux, lib) : get_aux(aux, "\t"); ++q->n_checked; h = (c->flag&BAM_FREVERSE)? q->rght : q->left;