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,10 +2697,14 @@ 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); ret = luaL_optinteger(luacon_ci->l, -1, 0);
lua_pop(luacon_ci->l, 1); lua_pop(luacon_ci->l, 1);
} }
}
return ret; return ret;
} }