From: ShadowNinja Date: Mon, 3 Feb 2014 23:15:03 +0000 (-0500) Subject: Fix crash when a error occurs in a globalstep callback X-Git-Url: http://81.2.79.47:8989/gitweb/?a=commitdiff_plain;h=458045d49fd96cf19bdd61b2f8dbdbc0fd11b587;p=zefram%2Fminetest%2Fminetest_engine.git Fix crash when a error occurs in a globalstep callback --- diff --git a/src/script/cpp_api/s_env.cpp b/src/script/cpp_api/s_env.cpp index ef3a1ddd..2c2198ed 100644 --- a/src/script/cpp_api/s_env.cpp +++ b/src/script/cpp_api/s_env.cpp @@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "environment.h" #include "mapgen.h" #include "lua_api/l_env.h" +#include "server.h" void ScriptApiEnv::environment_OnGenerated(v3s16 minp, v3s16 maxp, u32 blockseed) @@ -50,7 +51,11 @@ void ScriptApiEnv::environment_Step(float dtime) lua_getfield(L, -1, "registered_globalsteps"); // Call callbacks lua_pushnumber(L, dtime); - script_run_callbacks(L, 1, RUN_CALLBACKS_MODE_FIRST); + try { + script_run_callbacks(L, 1, RUN_CALLBACKS_MODE_FIRST); + } catch (LuaError &e) { + getServer()->setAsyncFatalError(e.what()); + } } void ScriptApiEnv::environment_OnMapgenInit(MapgenParams *mgparams)