bugfix: wrong B-tree comparison
This commit is contained in:
parent
8977737460
commit
5d372cef65
6
bwamem.c
6
bwamem.c
|
|
@ -57,8 +57,8 @@ int smem_next(smem_i *itr)
|
||||||
|
|
||||||
#include "kbtree.h"
|
#include "kbtree.h"
|
||||||
|
|
||||||
#define chain_lt(a, b) ((a).pos < (b).pos)
|
#define chain_cmp(a, b) ((a).pos - (b).pos)
|
||||||
KBTREE_INIT(chn, memchain1_t, chain_lt)
|
KBTREE_INIT(chn, memchain1_t, chain_cmp)
|
||||||
|
|
||||||
static int test_and_merge(const memopt_t *opt, memchain1_t *c, const memseed_t *p)
|
static int test_and_merge(const memopt_t *opt, memchain1_t *c, const memseed_t *p)
|
||||||
{
|
{
|
||||||
|
|
@ -66,7 +66,7 @@ static int test_and_merge(const memopt_t *opt, memchain1_t *c, const memseed_t *
|
||||||
const memseed_t *last = &c->seeds[c->n-1];
|
const memseed_t *last = &c->seeds[c->n-1];
|
||||||
qend = last->qbeg + last->len;
|
qend = last->qbeg + last->len;
|
||||||
rend = last->rbeg + last->len;
|
rend = last->rbeg + last->len;
|
||||||
if (p->qbeg > c->seeds[0].qbeg && p->qbeg + p->len < qend && p->rbeg > c->seeds[0].rbeg && p->rbeg + p->len < rend)
|
if (p->qbeg >= c->seeds[0].qbeg && p->qbeg + p->len <= qend && p->rbeg >= c->seeds[0].rbeg && p->rbeg + p->len <= rend)
|
||||||
return 1; // contained seed; do nothing
|
return 1; // contained seed; do nothing
|
||||||
x = p->qbeg - last->qbeg; // always positive
|
x = p->qbeg - last->qbeg; // always positive
|
||||||
y = p->rbeg - last->rbeg;
|
y = p->rbeg - last->rbeg;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue