mirror of
https://github.com/lh3/minimap2.git
synced 2026-10-02 23:58:11 +08:00
apparently mm_append_cigar() wastes some memory
This commit is contained in:
@@ -199,12 +199,12 @@ static void mm_append_cigar(mm_reg1_t *r, uint32_t n_cigar, uint32_t *cigar) //
|
|||||||
mm_extra_t *p;
|
mm_extra_t *p;
|
||||||
if (n_cigar == 0) return;
|
if (n_cigar == 0) return;
|
||||||
if (r->p == 0) {
|
if (r->p == 0) {
|
||||||
uint32_t capacity = n_cigar + sizeof(mm_extra_t); // TODO: should this be "n_cigar + sizeof(mm_extra_t)/4" instead?
|
uint32_t capacity = n_cigar + sizeof(mm_extra_t)/4; // TODO: should this be "n_cigar + sizeof(mm_extra_t)/4" instead?
|
||||||
kroundup32(capacity);
|
kroundup32(capacity);
|
||||||
r->p = (mm_extra_t*)calloc(capacity, 4);
|
r->p = (mm_extra_t*)calloc(capacity, 4);
|
||||||
r->p->capacity = capacity;
|
r->p->capacity = capacity;
|
||||||
} else if (r->p->n_cigar + n_cigar + sizeof(mm_extra_t) > r->p->capacity) {
|
} else if (r->p->n_cigar + n_cigar + sizeof(mm_extra_t)/4 > r->p->capacity) {
|
||||||
r->p->capacity = r->p->n_cigar + n_cigar + sizeof(mm_extra_t);
|
r->p->capacity = r->p->n_cigar + n_cigar + sizeof(mm_extra_t)/4;
|
||||||
kroundup32(r->p->capacity);
|
kroundup32(r->p->capacity);
|
||||||
r->p = (mm_extra_t*)realloc(r->p, r->p->capacity * 4);
|
r->p = (mm_extra_t*)realloc(r->p, r->p->capacity * 4);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user