X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bam_lpileup.c;h=21b477211e38ea8d0fbac8334150c84b52fcff4b;hb=6d35460bc21ebb0d46704c75301b41a4ed1643d1;hp=368028766842db8b9b71c82c4fc85a2eb3a87092;hpb=5fb80400b8e7ed3d7f782ad13897d6fcac2e03f1;p=samtools.git diff --git a/bam_lpileup.c b/bam_lpileup.c index 3680287..21b4772 100644 --- a/bam_lpileup.c +++ b/bam_lpileup.c @@ -167,11 +167,17 @@ bam_lplbuf_t *bam_lplbuf_init(bam_pileup_f func, void *data) void bam_lplbuf_destroy(bam_lplbuf_t *tv) { - mp_free(tv->mp, tv->head); - mp_destroy(tv->mp); + freenode_t *p, *q; free(tv->cur_level); free(tv->pre_level); bam_plbuf_destroy(tv->plbuf); free(tv->aux); + for (p = tv->head; p->next;) { + q = p->next; + mp_free(tv->mp, p); p = q; + } + mp_free(tv->mp, p); + assert(tv->mp->cnt == 0); + mp_destroy(tv->mp); free(tv); }