refactor(arena): use a shared block freelist

This is both simpler in client code and more effective (always reuse
block hottest in cache)
This commit is contained in:
bfredl
2022-08-23 10:36:46 +02:00
parent c0d6052654
commit bcf5ee328e
15 changed files with 49 additions and 61 deletions

View File

@@ -156,7 +156,6 @@ void pum_display(pumitem_T *array, int size, int selected, bool array_changed, i
if (pum_external) {
if (array_changed) {
Arena arena = ARENA_EMPTY;
arena_start(&arena, &ui_ext_fixblk);
Array arr = arena_array(&arena, (size_t)size);
for (int i = 0; i < size; i++) {
Array item = arena_array(&arena, 4);
@@ -168,7 +167,7 @@ void pum_display(pumitem_T *array, int size, int selected, bool array_changed, i
}
ui_call_popupmenu_show(arr, selected, pum_win_row, cursor_col,
pum_anchor_grid);
arena_mem_free(arena_finish(&arena), &ui_ext_fixblk);
arena_mem_free(arena_finish(&arena));
} else {
ui_call_popupmenu_select(selected);
return;