]> git.lizzy.rs Git - minetest.git/blobdiff - src/script/common/c_internal.h
Use a Lua error handler that calls tostring (#11913)
[minetest.git] / src / script / common / c_internal.h
index 5cbcbb7db227fb0c0812217242f39ef42a5311d8..c8bce099cb9acf0cef48c31cef3a2f26ec9bba8c 100644 (file)
@@ -54,7 +54,7 @@ enum {
        CUSTOM_RIDX_SCRIPTAPI,
        CUSTOM_RIDX_GLOBALS_BACKUP,
        CUSTOM_RIDX_CURRENT_MOD_NAME,
-       CUSTOM_RIDX_BACKTRACE,
+       CUSTOM_RIDX_ERROR_HANDLER,
        CUSTOM_RIDX_HTTP_API_LUA,
        CUSTOM_RIDX_METATABLE_MAP,
 
@@ -78,7 +78,7 @@ enum {
 
 // Pushes the error handler onto the stack and returns its index
 #define PUSH_ERROR_HANDLER(L) \
-       (lua_rawgeti((L), LUA_REGISTRYINDEX, CUSTOM_RIDX_BACKTRACE), lua_gettop((L)))
+       (lua_rawgeti((L), LUA_REGISTRYINDEX, CUSTOM_RIDX_ERROR_HANDLER), lua_gettop((L)))
 
 #define PCALL_RESL(L, RES) {                            \
        int result_ = (RES);                                \
@@ -121,6 +121,8 @@ enum RunCallbacksMode
 std::string script_get_backtrace(lua_State *L);
 // Wrapper for CFunction calls that converts C++ exceptions to Lua errors
 int script_exception_wrapper(lua_State *L, lua_CFunction f);
+// Acts as the error handler for lua_pcall
+int script_error_handler(lua_State *L);
 // Takes an error from lua_pcall and throws it as a LuaError
 void script_error(lua_State *L, int pcall_result, const char *mod, const char *fxn);