patch 9.0.1719: if_lua: crash for for Lua functions invoked via Vim callbacks
Problem: if_lua: crash for Lua functions invoked via Vim callbacks
Solution: Use Lua registry rather than upvalues for udata cache
closes: #12785
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Jesse Pavel <jpavel@alum.mit.edu>
diff --git a/src/testdir/test_lua.vim b/src/testdir/test_lua.vim
index 81e9262..dd95e9f 100644
--- a/src/testdir/test_lua.vim
+++ b/src/testdir/test_lua.vim
@@ -1232,4 +1232,11 @@
call StopVimInTerminal(buf)
endfunc
+" Test for a crash when a Lua funcref is invoked with parameters from Vim
+func Test_lua_funcref_with_params()
+ let Lua_funcref = luaeval('function(d) local s = "in Lua callback" end')
+ call Lua_funcref({'a' : 'b'})
+ call assert_true(v:true)
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab