Add traceback information to the error string generated if a thread causes a Lua error.

--HG--
branch : minor
This commit is contained in:
Alex Szpakowski
2017-08-07 20:15:26 -03:00
parent 01c091882a
commit 74d9bc7faf
3 changed files with 34 additions and 1 deletions
+4 -1
View File
@@ -66,6 +66,9 @@ void LuaThread::threadFunction()
luax_require(L, "love.filesystem");
lua_pop(L, 1);
lua_pushcfunction(L, luax_traceback);
int tracebackidx = lua_gettop(L);
if (luaL_loadbuffer(L, (const char *) code->getData(), code->getSize(), name.c_str()) != 0)
error = luax_tostring(L, -1);
else
@@ -77,7 +80,7 @@ void LuaThread::threadFunction()
args.clear();
if (lua_pcall(L, pushedargs, 0, 0) != 0)
if (lua_pcall(L, pushedargs, 0, tracebackidx) != 0)
error = luax_tostring(L, -1);
}