commit 754822a066e6ce92462aa17fce8999472c23b777
parent 0c0071548b4b598dcc4f9836703b1a7b0dc7c007
Author: notomo <notomo.motono@gmail.com>
Date: Fri, 16 Sep 2022 18:06:37 +0900
fix(lua): free vim.ui_attach callback before lua close (#20205)
Diffstat:
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/nvim/memory.c b/src/nvim/memory.c
@@ -821,9 +821,9 @@ void free_all_mem(void)
decor_free_all_mem();
- nlua_free_all_mem();
ui_free_all_mem();
ui_comp_free_all_mem();
+ nlua_free_all_mem();
// should be last, in case earlier free functions deallocates arenas
arena_free_reuse_blks();
diff --git a/test/functional/lua/ui_event_spec.lua b/test/functional/lua/ui_event_spec.lua
@@ -105,4 +105,16 @@ describe('vim.ui_attach', function()
}
end)
+
+ it('does not crash on exit', function()
+ helpers.funcs.system({
+ helpers.nvim_prog,
+ '-u', 'NONE',
+ '-i', 'NONE',
+ '--cmd', [[ lua ns = vim.api.nvim_create_namespace 'testspace' ]],
+ '--cmd', [[ lua vim.ui_attach(ns, {ext_popupmenu=true}, function() end) ]],
+ '--cmd', 'quitall!',
+ })
+ eq(0, helpers.eval('v:shell_error'))
+ end)
end)