aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/vim.c
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2024-02-18 18:04:28 +0100
committerGitHub <noreply@github.com>2024-02-18 18:04:28 +0100
commit93c911e52feadff72003f7e78257c00c3bbf1570 (patch)
treeff0e65d868b9e30ec4759f13e3c3809f8fd41697 /src/nvim/api/vim.c
parentd94adff48b1882f9078b0ae94b677be5d29e5fd2 (diff)
parent97531be1f766e6cad79e6360ae9cb827434cff3c (diff)
downloadrneovim-93c911e52feadff72003f7e78257c00c3bbf1570.tar.gz
rneovim-93c911e52feadff72003f7e78257c00c3bbf1570.tar.bz2
rneovim-93c911e52feadff72003f7e78257c00c3bbf1570.zip
Merge pull request #27511 from bfredl/maparena
refactor(api): use arena for mappings, autocmd, channel info
Diffstat (limited to 'src/nvim/api/vim.c')
-rw-r--r--src/nvim/api/vim.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c
index 1184eb7441..7a19ccf295 100644
--- a/src/nvim/api/vim.c
+++ b/src/nvim/api/vim.c
@@ -1456,10 +1456,10 @@ Dictionary nvim_get_mode(Arena *arena)
/// @param mode Mode short-name ("n", "i", "v", ...)
/// @returns Array of |maparg()|-like dictionaries describing mappings.
/// The "buffer" key is always zero.
-ArrayOf(Dictionary) nvim_get_keymap(String mode)
+ArrayOf(Dictionary) nvim_get_keymap(String mode, Arena *arena)
FUNC_API_SINCE(3)
{
- return keymap_array(mode, NULL);
+ return keymap_array(mode, NULL, arena);
}
/// Sets a global |mapping| for the given mode.
@@ -1633,7 +1633,7 @@ void nvim_set_client_info(uint64_t channel_id, String name, Dictionary version,
/// the RPC channel), if provided by it via
/// |nvim_set_client_info()|.
///
-Dictionary nvim_get_chan_info(uint64_t channel_id, Integer chan, Error *err)
+Dictionary nvim_get_chan_info(uint64_t channel_id, Integer chan, Arena *arena, Error *err)
FUNC_API_SINCE(4)
{
if (chan < 0) {
@@ -1644,17 +1644,17 @@ Dictionary nvim_get_chan_info(uint64_t channel_id, Integer chan, Error *err)
assert(channel_id <= INT64_MAX);
chan = (Integer)channel_id;
}
- return channel_info((uint64_t)chan);
+ return channel_info((uint64_t)chan, arena);
}
/// Get information about all open channels.
///
/// @returns Array of Dictionaries, each describing a channel with
/// the format specified at |nvim_get_chan_info()|.
-Array nvim_list_chans(void)
+Array nvim_list_chans(Arena *arena)
FUNC_API_SINCE(4)
{
- return channel_all_info();
+ return channel_all_info(arena);
}
/// Calls many API methods atomically.
@@ -1891,7 +1891,7 @@ Array nvim_get_proc_children(Integer pid, Arena *arena, Error *err)
// syscall failed (possibly because of kernel options), try shelling out.
DLOG("fallback to vim._os_proc_children()");
MAXSIZE_TEMP_ARRAY(a, 1);
- ADD(a, INTEGER_OBJ(pid));
+ ADD_C(a, INTEGER_OBJ(pid));
Object o = NLUA_EXEC_STATIC("return vim._os_proc_children(...)", a, kRetObject, arena, err);
if (o.type == kObjectTypeArray) {
rvobj = o.data.array;
@@ -1903,7 +1903,7 @@ Array nvim_get_proc_children(Integer pid, Arena *arena, Error *err)
} else {
rvobj = arena_array(arena, proc_count);
for (size_t i = 0; i < proc_count; i++) {
- ADD(rvobj, INTEGER_OBJ(proc_list[i]));
+ ADD_C(rvobj, INTEGER_OBJ(proc_list[i]));
}
}
@@ -1925,7 +1925,7 @@ Object nvim_get_proc(Integer pid, Arena *arena, Error *err)
});
#ifdef MSWIN
- rvobj = DICTIONARY_OBJ(os_proc_info((int)pid));
+ rvobj = DICTIONARY_OBJ(os_proc_info((int)pid, arena));
if (rvobj.data.dictionary.size == 0) { // Process not found.
return NIL;
}