diff options
author | Tycho <work.tycho+git@gmail.com> | 2014-03-22 15:48:16 +0100 |
---|---|---|
committer | Tycho <work.tycho+git@gmail.com> | 2014-03-22 15:48:16 +0100 |
commit | 2266c2150daad68c19d320683f6bf5abd7f2ebb2 (patch) | |
tree | 111fe0c36643afd27317b8d9a4c7912b6899ec4a /src/Bindings/LuaState.cpp | |
parent | Patched tolua to understand size_t (diff) | |
parent | Implemented faster upscaling using templates. (diff) | |
download | cuberite-2266c2150daad68c19d320683f6bf5abd7f2ebb2.tar cuberite-2266c2150daad68c19d320683f6bf5abd7f2ebb2.tar.gz cuberite-2266c2150daad68c19d320683f6bf5abd7f2ebb2.tar.bz2 cuberite-2266c2150daad68c19d320683f6bf5abd7f2ebb2.tar.lz cuberite-2266c2150daad68c19d320683f6bf5abd7f2ebb2.tar.xz cuberite-2266c2150daad68c19d320683f6bf5abd7f2ebb2.tar.zst cuberite-2266c2150daad68c19d320683f6bf5abd7f2ebb2.zip |
Diffstat (limited to 'src/Bindings/LuaState.cpp')
-rw-r--r-- | src/Bindings/LuaState.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/Bindings/LuaState.cpp b/src/Bindings/LuaState.cpp index f24e15c3b..47380b8a7 100644 --- a/src/Bindings/LuaState.cpp +++ b/src/Bindings/LuaState.cpp @@ -689,9 +689,10 @@ void cLuaState::Push(void * a_Ptr) ASSERT(IsValid()); // Investigate the cause of this - what is the callstack? - LOGWARNING("Lua engine encountered an error - attempting to push a plain pointer"); + // One code path leading here is the OnHookExploding / OnHookExploded with exotic parameters. Need to decide what to do with them + LOGWARNING("Lua engine: attempting to push a plain pointer, pushing nil instead."); + LOGWARNING("This indicates an unimplemented part of MCS bindings"); LogStackTrace(); - ASSERT(!"A plain pointer should never be pushed on Lua stack"); lua_pushnil(m_LuaState); m_NumCurrentFunctionArgs += 1; @@ -1080,20 +1081,20 @@ bool cLuaState::ReportErrors(lua_State * a_LuaState, int a_Status) -void cLuaState::LogStackTrace(void) +void cLuaState::LogStackTrace(int a_StartingDepth) { - LogStackTrace(m_LuaState); + LogStackTrace(m_LuaState, a_StartingDepth); } -void cLuaState::LogStackTrace(lua_State * a_LuaState) +void cLuaState::LogStackTrace(lua_State * a_LuaState, int a_StartingDepth) { LOGWARNING("Stack trace:"); lua_Debug entry; - int depth = 0; + int depth = a_StartingDepth; while (lua_getstack(a_LuaState, depth, &entry)) { lua_getinfo(a_LuaState, "Sln", &entry); @@ -1312,7 +1313,7 @@ void cLuaState::LogStack(lua_State * a_LuaState, const char * a_Header) int cLuaState::ReportFnCallErrors(lua_State * a_LuaState) { LOGWARNING("LUA: %s", lua_tostring(a_LuaState, -1)); - LogStackTrace(a_LuaState); + LogStackTrace(a_LuaState, 1); return 1; // We left the error message on the stack as the return value } |