Fix crash if error happens in ctypeDraw lua function

This commit is contained in:
jacob1 2019-11-22 23:37:17 -05:00
parent d17c67b3a4
commit b09158220f

View File

@ -2432,6 +2432,7 @@ void LuaScriptInterface::initElementsAPI()
SETCONST(l, PROP_LIFE_KILL_DEC); SETCONST(l, PROP_LIFE_KILL_DEC);
SETCONST(l, PROP_SPARKSETTLE); SETCONST(l, PROP_SPARKSETTLE);
SETCONST(l, PROP_NOAMBHEAT); SETCONST(l, PROP_NOAMBHEAT);
lua_pushinteger(l, 0); lua_setfield(l, -2, "PROP_DRAWONCTYPE");
SETCONST(l, PROP_NOCTYPEDRAW); SETCONST(l, PROP_NOCTYPEDRAW);
SETCONST(l, FLAG_STAGNANT); SETCONST(l, FLAG_STAGNANT);
SETCONST(l, FLAG_SKIPMOVE); SETCONST(l, FLAG_SKIPMOVE);
@ -2696,9 +2697,13 @@ static bool luaCtypeDrawWrapper(CTYPEDRAW_FUNC_ARGS)
if (lua_pcall(luacon_ci->l, 3, 1, 0)) if (lua_pcall(luacon_ci->l, 3, 1, 0))
{ {
luacon_ci->Log(CommandInterface::LogError, luacon_geterror()); luacon_ci->Log(CommandInterface::LogError, luacon_geterror());
lua_pop(luacon_ci->l, 1);
}
else
{
ret = luaL_optinteger(luacon_ci->l, -1, 0);
lua_pop(luacon_ci->l, 1);
} }
ret = luaL_optinteger(luacon_ci->l, -1, 0);
lua_pop(luacon_ci->l, 1);
} }
return ret; return ret;
} }