refactor: free more reachable memory with EXITFREE (#26349)

Discovered using __sanitizer_print_memory_profile().
This commit is contained in:
zeertzjq
2023-12-02 07:55:44 +08:00
committed by GitHub
parent 983defd284
commit f6e5366d00
16 changed files with 151 additions and 18 deletions

View File

@@ -879,15 +879,20 @@ void grid_free(ScreenGrid *grid)
grid->line_offset = NULL;
}
#ifdef EXITFREE
/// Doesn't allow reinit, so must only be called by free_all_mem!
void grid_free_all_mem(void)
{
grid_free(&default_grid);
grid_free(&msg_grid);
XFREE_CLEAR(msg_grid.dirty_col);
xfree(linebuf_char);
xfree(linebuf_attr);
xfree(linebuf_vcol);
xfree(linebuf_scratch);
set_destroy(glyph, &glyph_cache);
}
#endif
/// (Re)allocates a window grid if size changed while in ext_multigrid mode.
/// Updates size, offsets and handle for the grid regardless.