0.7.9a-r786: fixed a segfault in a rare case
More likely to happen given a circular genome
This commit is contained in:
parent
031d3d83ce
commit
3efc33160c
|
|
@ -123,7 +123,7 @@ int mem_matesw(const mem_opt_t *opt, const bntseq_t *bns, const uint8_t *pac, co
|
||||||
if (skip[0] + skip[1] + skip[2] + skip[3] == 4) return 0; // consistent pair exist; no need to perform SW
|
if (skip[0] + skip[1] + skip[2] + skip[3] == 4) return 0; // consistent pair exist; no need to perform SW
|
||||||
for (r = 0; r < 4; ++r) {
|
for (r = 0; r < 4; ++r) {
|
||||||
int is_rev, is_larger;
|
int is_rev, is_larger;
|
||||||
uint8_t *seq, *rev = 0, *ref;
|
uint8_t *seq, *rev = 0, *ref = 0;
|
||||||
int64_t rb, re;
|
int64_t rb, re;
|
||||||
if (skip[r]) continue;
|
if (skip[r]) continue;
|
||||||
is_rev = (r>>1 != (r&1)); // whether to reverse complement the mate
|
is_rev = (r>>1 != (r&1)); // whether to reverse complement the mate
|
||||||
|
|
@ -142,8 +142,8 @@ int mem_matesw(const mem_opt_t *opt, const bntseq_t *bns, const uint8_t *pac, co
|
||||||
}
|
}
|
||||||
if (rb < 0) rb = 0;
|
if (rb < 0) rb = 0;
|
||||||
if (re > l_pac<<1) re = l_pac<<1;
|
if (re > l_pac<<1) re = l_pac<<1;
|
||||||
ref = bns_fetch_seq(bns, pac, &rb, (rb+re)>>1, &re, &rid);
|
if (rb < re) ref = bns_fetch_seq(bns, pac, &rb, (rb+re)>>1, &re, &rid);
|
||||||
if (a->rid == rid) { // no funny things happening
|
if (a->rid == rid && re - rb >= opt->min_seed_len) { // no funny things happening
|
||||||
kswr_t aln;
|
kswr_t aln;
|
||||||
mem_alnreg_t b;
|
mem_alnreg_t b;
|
||||||
int tmp, xtra = KSW_XSUBO | KSW_XSTART | (l_ms * opt->a < 250? KSW_XBYTE : 0) | (opt->min_seed_len * opt->a);
|
int tmp, xtra = KSW_XSUBO | KSW_XSTART | (l_ms * opt->a < 250? KSW_XBYTE : 0) | (opt->min_seed_len * opt->a);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue