From ea8f4f4d34b05be0c3a821c9eede57fae39c5477 Mon Sep 17 00:00:00 2001 From: Heng Li Date: Wed, 20 Feb 2013 20:26:57 -0500 Subject: [PATCH] clean bill from valgrind --- bwamem.c | 5 ++++- bwamem_pair.c | 2 +- ksw.c | 6 +++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/bwamem.c b/bwamem.c index f9415b2..f0e1a29 100644 --- a/bwamem.c +++ b/bwamem.c @@ -363,7 +363,10 @@ int mem_sort_and_dedup(int n, mem_alnreg_t *a) a[i].qe = a[i].qb; } for (i = 1, m = 1; i < n; ++i) // exclude identical hits - if (a[i].qe > a[i].qb) a[m++] = a[i]; + if (a[i].qe > a[i].qb) { + if (m != i) a[m++] = a[i]; + else ++m; + } return m; } diff --git a/bwamem_pair.c b/bwamem_pair.c index dc46f44..092eee2 100644 --- a/bwamem_pair.c +++ b/bwamem_pair.c @@ -153,7 +153,7 @@ int mem_matesw(const mem_opt_t *opt, int64_t l_pac, const uint8_t *pac, const me } ++n; } - if (rev == 0) free(rev); + if (rev) free(rev); free(ref); } return n; diff --git a/ksw.c b/ksw.c index 8d741a6..742fec9 100644 --- a/ksw.c +++ b/ksw.c @@ -447,7 +447,7 @@ static inline uint32_t *push_cigar(int *n_cigar, int *m_cigar, uint32_t *cigar, if (*n_cigar == 0 || op != (cigar[(*n_cigar) - 1]&0xf)) { if (*n_cigar == *m_cigar) { *m_cigar = *m_cigar? (*m_cigar)<<1 : 4; - cigar = realloc(cigar, (*m_cigar) << 4); + cigar = realloc(cigar, (*m_cigar) << 2); } cigar[(*n_cigar)++] = len<<4 | op; } else cigar[(*n_cigar)-1] += len<<4; @@ -520,8 +520,8 @@ int ksw_global(int qlen, const uint8_t *query, int tlen, const uint8_t *target, else if (which == 1) cigar = push_cigar(&n_cigar, &m_cigar, cigar, 2, 1), --i; else cigar = push_cigar(&n_cigar, &m_cigar, cigar, 1, 1), --k; } - if (i >= 0) push_cigar(&n_cigar, &m_cigar, cigar, 2, i + 1); - if (k >= 0) push_cigar(&n_cigar, &m_cigar, cigar, 1, k + 1); + if (i >= 0) cigar = push_cigar(&n_cigar, &m_cigar, cigar, 2, i + 1); + if (k >= 0) cigar = push_cigar(&n_cigar, &m_cigar, cigar, 1, k + 1); for (i = 0; i < n_cigar>>1; ++i) // reverse CIGAR tmp = cigar[i], cigar[i] = cigar[n_cigar-1-i], cigar[n_cigar-1-i] = tmp; *n_cigar_ = n_cigar, *cigar_ = cigar;