-
Notifications
You must be signed in to change notification settings - Fork 29
Open
Description
Easy repro:
LuaRuntime.Run("var = 'test_string'; print(var:gsub('_','-'));");
Something in the error handling then recurses infinitely until it throws an IndexOutOfRange exception probably related to stack handling problems:
at SharpLua.Lua.getline(Proto f, Int32 pc)
at SharpLua.Lua.currentline(LuaState L, CallInfo ci)
at SharpLua.Lua.addinfo(LuaState L, CharPtr msg)
at SharpLua.Lua.luaG_runerror(LuaState L, CharPtr fmt, Object[] argp)
at SharpLua.Lua.luaD_call(LuaState L, lua_TValue func, Int32 nResults)
at SharpLua.Lua.callTMres(LuaState L, lua_TValue res, lua_TValue f, lua_TValue p1, lua_TValue p2)
at SharpLua.Lua.luaV_gettable(LuaState L, lua_TValue t, lua_TValue key, lua_TValue val)
at SharpLua.Lua.luaV_execute(LuaState L, Int32 nexeccalls)
at SharpLua.Lua.luaD_call(LuaState L, lua_TValue func, Int32 nResults)
at SharpLua.Lua.f_call(LuaState L, Object ud)
at SharpLua.Lua.luaD_rawrunprotected(LuaState L, Pfunc f, Object ud)
at SharpLua.Lua.luaD_pcall(LuaState L, Pfunc func, Object u, Int32 old_top, Int32 ef)
at SharpLua.Lua.lua_pcall(LuaState L, Int32 nargs, Int32 nresults, Int32 errfunc)
at SharpLua.Lua.luaB_pcall(LuaState L)
at SharpLua.Lua.luaD_precall(LuaState L, lua_TValue func, Int32 nresults)
at SharpLua.Lua.luaV_execute(LuaState L, Int32 nexeccalls)
at SharpLua.Lua.luaD_call(LuaState L, lua_TValue func, Int32 nResults)
at SharpLua.Lua.callTMres(LuaState L, lua_TValue res, lua_TValue f, lua_TValue p1, lua_TValue p2)
at SharpLua.Lua.luaV_gettable(LuaState L, lua_TValue t, lua_TValue key, lua_TValue val)
at SharpLua.Lua.luaV_execute(LuaState L, Int32 nexeccalls)
at SharpLua.Lua.luaD_call(LuaState L, lua_TValue func, Int32 nResults)
at SharpLua.Lua.f_call(LuaState L, Object ud)
at SharpLua.Lua.luaD_rawrunprotected(LuaState L, Pfunc f, Object ud)
at SharpLua.Lua.luaD_pcall(LuaState L, Pfunc func, Object u, Int32 old_top, Int32 ef)
at SharpLua.Lua.lua_pcall(LuaState L, Int32 nargs, Int32 nresults, Int32 errfunc)
...
I've been digging around trying to figure out why, but I don't have any answers yet. I suspect there are two bugs - one in error handling, and one related to gsub with string arguments (which is what led me down this path).
Metadata
Metadata
Assignees
Labels
No labels