fix(lua): pop retval for fast context LuaRef

Problem:  nlua_call_ref_ctx() does not pop the return value in fast
          context that did not error.
Solution: Fall through to end; calling nlua_call_pop_retval().
This commit is contained in:
Luuk van Baal authored and luukvbaal committed 2025-01-24 11:57:51 +01:00
1 parent d98827b634
commit c6d2cbf8f5
2 files changed
+10 -1

No files matched your search

+1 -1
View File
@@ -1587,8 +1587,8 @@ Object nlua_call_ref_ctx(bool fast, LuaRef ref, const char *name, Array args, Lu
if (nlua_fast_cfpcall(lstate, nargs, 1, -1) < 0) {
// error is already scheduled, set anyways to convey failure.
api_set_error(err, kErrorTypeException, "fast context failure");
return NIL;
}
return NIL;
} else if (nlua_pcall(lstate, nargs, 1)) {
// if err is passed, the caller will deal with the error.
if (err) {
+9
View File
@@ -423,4 +423,13 @@ describe('vim.ui_attach', function()
{100:Press ENTER or type command to continue}^ |
]])
end)
it('sourcing invalid file does not crash #32166', function()
exec_lua([[
local ns = vim.api.nvim_create_namespace("")
vim.ui_attach(ns, { ext_messages = true }, function() end)
]])
feed((':luafile %s<CR>'):format(testlog))
n.assert_alive()
end)
end)