grid: add grid_free()

This commit is contained in:
Daniel Eklöf 2021-02-22 10:20:52 +01:00
parent ebf8070244
commit bb74fe3f7d
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 18 additions and 14 deletions

14
grid.c
View file

@ -11,6 +11,20 @@
#include "util.h"
#include "xmalloc.h"
void
grid_free(struct grid *grid)
{
for (int r = 0; r < grid->num_rows; r++)
grid_row_free(grid->rows[r]);
tll_foreach(grid->sixel_images, it) {
sixel_destroy(&it->item);
tll_remove(grid->sixel_images, it);
}
free(grid->rows);
}
void
grid_swap_row(struct grid *grid, int row_a, int row_b)
{

2
grid.h
View file

@ -4,6 +4,8 @@
#include "debug.h"
#include "terminal.h"
void grid_free(struct grid *grid);
void grid_swap_row(struct grid *grid, int row_a, int row_b);
struct row *grid_row_alloc(int cols, bool initialize);
void grid_row_free(struct row *row);

View file

@ -1437,12 +1437,8 @@ term_destroy(struct terminal *term)
mtx_unlock(&term->render.workers.lock);
free(term->vt.osc.data);
for (int row = 0; row < term->normal.num_rows; row++)
grid_row_free(term->normal.rows[row]);
free(term->normal.rows);
for (int row = 0; row < term->alt.num_rows; row++)
grid_row_free(term->alt.rows[row]);
free(term->alt.rows);
grid_free(&term->normal);
grid_free(&term->alt);
tll_free(term->normal.scroll_damage);
tll_free(term->alt.scroll_damage);
@ -1490,14 +1486,6 @@ term_destroy(struct terminal *term)
tll_remove(term->ptmx_paste_buffers, it);
}
tll_foreach(term->normal.sixel_images, it) {
sixel_destroy(&it->item);
tll_remove(term->normal.sixel_images, it);
}
tll_foreach(term->alt.sixel_images, it) {
sixel_destroy(&it->item);
tll_remove(term->alt.sixel_images, it);
}
sixel_fini(term);
urls_reset(term);