mirror of
https://github.com/neovim/neovim.git
synced 2025-09-28 05:58:33 +00:00
refactor(api): use arena when listing objects
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
/// @param tabpage Tabpage handle, or 0 for current tabpage
|
||||
/// @param[out] err Error details, if any
|
||||
/// @return List of windows in `tabpage`
|
||||
ArrayOf(Window) nvim_tabpage_list_wins(Tabpage tabpage, Error *err)
|
||||
ArrayOf(Window) nvim_tabpage_list_wins(Tabpage tabpage, Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(1)
|
||||
{
|
||||
Array rv = ARRAY_DICT_INIT;
|
||||
@@ -29,15 +29,15 @@ ArrayOf(Window) nvim_tabpage_list_wins(Tabpage tabpage, Error *err)
|
||||
return rv;
|
||||
}
|
||||
|
||||
size_t n = 0;
|
||||
FOR_ALL_WINDOWS_IN_TAB(wp, tab) {
|
||||
rv.size++;
|
||||
n++;
|
||||
}
|
||||
|
||||
rv.items = xmalloc(sizeof(Object) * rv.size);
|
||||
size_t i = 0;
|
||||
rv = arena_array(arena, n);
|
||||
|
||||
FOR_ALL_WINDOWS_IN_TAB(wp, tab) {
|
||||
rv.items[i++] = WINDOW_OBJ(wp->handle);
|
||||
ADD_C(rv, WINDOW_OBJ(wp->handle));
|
||||
}
|
||||
|
||||
return rv;
|
||||
|
Reference in New Issue
Block a user