From 9f851f04b857a43aea38b32ef891572266e10669 Mon Sep 17 00:00:00 2001 From: Heng Li Date: Thu, 10 May 2012 22:03:54 -0400 Subject: [PATCH] bugfix: bgzf-mt may write prematured output --- bgzf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bgzf.c b/bgzf.c index 7254fa2..880d5af 100644 --- a/bgzf.c +++ b/bgzf.c @@ -401,7 +401,7 @@ static int worker_aux(worker_t *w) w->errcode = 0; for (i = w->i; i < w->mt->curr; i += w->mt->n_threads) { int clen = BGZF_MAX_BLOCK_SIZE; - if (bgzf_compress(w->buf, &clen, w->mt->blk[i], w->mt->len[i], w->fp->compress_level) != 0) + if (bgzf_compress(w->buf, &clen, w->mt->blk[i], w->mt->len[i], w->fp->compress_level) != 0) w->errcode |= BGZF_ERR_ZLIB; memcpy(w->mt->blk[i], w->buf, clen); w->mt->len[i] = clen; @@ -502,7 +502,7 @@ static int mt_flush(BGZF *fp) static int mt_lazy_flush(BGZF *fp) { mtaux_t *mt = (mtaux_t*)fp->mt; - mt_queue(fp); + if (fp->block_offset) mt_queue(fp); if (mt->curr == mt->n_blks) return mt_flush(fp); return -1; -- 2.39.2