sixel: free private color registers on unhook

This commit is contained in:
Daniel Eklöf 2021-02-17 21:58:36 +01:00
parent 4aa980a6a2
commit 8c44b63938
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

17
sixel.c
View file

@ -50,17 +50,9 @@ sixel_init(struct terminal *term)
/* TODO: default palette */
if (term->sixel.use_private_palette) {
if (term->sixel.private_palette == NULL) {
term->sixel.private_palette = xcalloc(
term->sixel.palette_size, sizeof(term->sixel.private_palette[0]));
} else {
/* Private palette - i.e. each sixel starts with a clean palette */
memset(
term->sixel.private_palette,
0,
term->sixel.palette_size * sizeof(term->sixel.private_palette[0]));
}
xassert(term->sixel.private_palette == NULL);
term->sixel.private_palette = xcalloc(
term->sixel.palette_size, sizeof(term->sixel.private_palette[0]));
term->sixel.palette = term->sixel.private_palette;
} else {
if (term->sixel.shared_palette == NULL) {
@ -794,6 +786,9 @@ sixel_unhook(struct terminal *term)
term->sixel.max_col = 0;
term->sixel.pos = (struct coord){0, 0};
free(term->sixel.private_palette);
term->sixel.private_palette = NULL;
LOG_DBG("you now have %zu sixels in current grid",
tll_length(term->grid->sixel_images));