From 571b347c432b276a5062397101a5a393a0649bed Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Wed, 14 May 2014 15:55:14 +1000 Subject: Don't use the new Lua state if it couldn't be allocated. --- src/LuaSL/LuaSL_compile.c | 56 +++++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 26 deletions(-) (limited to 'src/LuaSL') diff --git a/src/LuaSL/LuaSL_compile.c b/src/LuaSL/LuaSL_compile.c index f2fa37e..41d354f 100644 --- a/src/LuaSL/LuaSL_compile.c +++ b/src/LuaSL/LuaSL_compile.c @@ -2338,38 +2338,42 @@ boolean compileLSL(gameGlobals *ourGlobals, Ecore_Con_Client *client, char *SID, fclose(out); // Compile the Lua source code. - L = luaL_newstate(); - luaL_openlibs(L); - // This ends up pushing a function onto the stack. The function is the compiled code. - err = luaL_loadfile(L, luaName); - if (err) + if ((L = luaL_newstate())) { - compiler.script.bugCount++; - if (LUA_ERRSYNTAX == err) - PE("Lua syntax error in %s: %s", luaName, lua_tostring(L, -1)); - else if (LUA_ERRFILE == err) - PE("Lua compile file error in %s: %s", luaName, lua_tostring(L, -1)); - else if (LUA_ERRMEM == err) - PE("Lua compile memory allocation error in %s: %s", luaName, lua_tostring(L, -1)); - } - else - { - // Write the compiled code to a file. - strcat(luaName, ".out"); - out = fopen(luaName, "w"); - if (out) + luaL_openlibs(L); + // This ends up pushing a function onto the stack. The function is the compiled code. + err = luaL_loadfile(L, luaName); + if (err) { - err = lua_dump(L, luaWriter, out); - if (err) + compiler.script.bugCount++; + if (LUA_ERRSYNTAX == err) + PE("Lua syntax error in %s: %s", luaName, lua_tostring(L, -1)); + else if (LUA_ERRFILE == err) + PE("Lua compile file error in %s: %s", luaName, lua_tostring(L, -1)); + else if (LUA_ERRMEM == err) + PE("Lua compile memory allocation error in %s: %s", luaName, lua_tostring(L, -1)); + } + else + { + // Write the compiled code to a file. + strcat(luaName, ".out"); + out = fopen(luaName, "w"); + if (out) { - compiler.script.bugCount++; - PE("Lua compile file error writing to %s", luaName); + err = lua_dump(L, luaWriter, out); + if (err) + { + compiler.script.bugCount++; + PE("Lua compile file error writing to %s", luaName); + } + fclose(out); } - fclose(out); + else + PC("Unable to open file %s for writing!", luaName); } - else - PC("Unable to open file %s for writing!", luaName); } + else + PE("Can't create a new Lua state!"); } else PC("Unable to open file %s for writing!", luaName); -- cgit v1.1