neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 22eb2ba18336df6cd70a88f666818ee5d8ba92d2
parent e7c46438ab118c138a7370a9976e45854c356a89
Author: Gregory Anders <greg@gpanders.com>
Date:   Mon, 13 Nov 2023 13:39:04 -0600

fix(lua): do not schedule events if Nvim is exiting

If Nvim is in the process of exiting then we do not want to allocate any
new refs onto the event loop, because they will not be freed and will
result in a memory leak.

Diffstat:
Msrc/nvim/lua/executor.c | 6++++++
1 file changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/nvim/lua/executor.c b/src/nvim/lua/executor.c @@ -366,6 +366,12 @@ static void nlua_schedule_event(void **argv) static int nlua_schedule(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL { + // If Nvim is exiting don't schedule tasks to run in the future. Any refs + // allocated here will not be cleaned up otherwise + if (exiting) { + return 0; + } + if (lua_type(lstate, 1) != LUA_TFUNCTION) { lua_pushliteral(lstate, "vim.schedule: expected function"); return lua_error(lstate);