@@ -63,7 +63,7 @@ static void mm_jump_split_left(void *km, const mm_idx_t *mi, const mm_mapopt_t *
63
63
for (i = 0 ; i < n ; ++ i ) { // traverse possible jumps
64
64
const mm_idx_jjump1_t * ai = & a [i ];
65
65
int32_t tlen , tl1 , j , mm1 , mm2 ;
66
- assert (ai -> off >= r -> rs - extt && ai -> off < r -> rs + ext );
66
+ assert (ai -> off >= r -> rs - extt && ai -> off <= r -> rs + ext );
67
67
if (ts_strand * ai -> strand < 0 ) continue ; // wrong strand
68
68
if (ai -> off2 >= ai -> off ) continue ; // wrong direction
69
69
if (ai -> off2 < clip + ext ) continue ; // not long enough
@@ -125,7 +125,7 @@ static void mm_jump_split_right(void *km, const mm_idx_t *mi, const mm_mapopt_t
125
125
for (i = 0 ; i < n ; ++ i ) { // traverse possible jumps
126
126
const mm_idx_jjump1_t * ai = & a [i ];
127
127
int32_t tlen , tl1 , j , mm1 , mm2 ;
128
- assert (ai -> off >= r -> re - ext && ai -> off < r -> re + extt );
128
+ assert (ai -> off >= r -> re - ext && ai -> off <= r -> re + extt );
129
129
if (ts_strand * ai -> strand < 0 ) continue ; // wrong strand
130
130
if (ai -> off2 <= ai -> off ) continue ; // wrong direction
131
131
if (ai -> off2 + clip + ext > mi -> seq [r -> rid ].len ) continue ; // not long enough
@@ -155,7 +155,6 @@ static void mm_jump_split_right(void *km, const mm_idx_t *mi, const mm_mapopt_t
155
155
l = m > 0 ? r -> re - a [i0 ].off : 0 ; // may be negative
156
156
if (m == 1 && clip + l >= opt -> jump_min_alen ) { // add one more exon
157
157
mm_enlarge_cigar (r , 2 );
158
- memmove (r -> p -> cigar + 2 , r -> p -> cigar , r -> p -> n_cigar * 4 );
159
158
r -> p -> cigar [r -> p -> n_cigar - 1 ] = ((r -> p -> cigar [r -> p -> n_cigar - 1 ]>>4 ) - l ) << 4 | MM_CIGAR_MATCH ;
160
159
r -> p -> cigar [r -> p -> n_cigar ] = (a [i0 ].off2 - a [i0 ].off ) << 4 | MM_CIGAR_N_SKIP ;
161
160
r -> p -> cigar [r -> p -> n_cigar + 1 ] = (clip + l ) << 4 | MM_CIGAR_MATCH ;
0 commit comments