sixel: knock out memory leak when replacing annihilated sprixcells #2104

pull/2122/head
nick black 3 years ago
parent df9663c28a
commit 7ad34fc282
No known key found for this signature in database
GPG Key ID: 5F43400C21CBFACC

@ -239,6 +239,7 @@ int sixel_wipe(sprixel* s, int ycell, int xcell){
s->wipes_outstanding = true;
}
change_p2(s->glyph.buf, SIXEL_P2_TRANS);
assert(NULL == s->n->tam[s->dimx * ycell + xcell].auxvector);
s->n->tam[s->dimx * ycell + xcell].auxvector = auxvec;
return 0;
}
@ -397,9 +398,15 @@ extract_color_table(const uint32_t* data, int linesize, int cols,
if(rgba_trans_p(*rgb, bargs->transcolor)){
if(sy % cdimy == 0 && visx % cdimx == 0){
tam[txyidx].state = SPRIXCELL_ANNIHILATED_TRANS;
free(tam[txyidx].auxvector);
tam[txyidx].auxvector = NULL;
}
}else{
tam[txyidx].state = SPRIXCELL_ANNIHILATED;
if(sy % cdimy == 0 && visx % cdimx == 0){
free(tam[txyidx].auxvector);
tam[txyidx].auxvector = NULL;
}
}
}
unsigned char comps[RGBSIZE];

Loading…
Cancel
Save