Commit ab960df8 authored by abadc0de's avatar abadc0de

Lua call stack cleanup

parent 08048bd5
...@@ -3934,14 +3934,12 @@ static int handle_lsp_request(struct mg_connection *, const char *, ...@@ -3934,14 +3934,12 @@ static int handle_lsp_request(struct mg_connection *, const char *,
static int lsp_mg_error(lua_State *L) { static int lsp_mg_error(lua_State *L) {
struct mg_connection *conn = lua_touserdata(L, lua_upvalueindex(1)); struct mg_connection *conn = lua_touserdata(L, lua_upvalueindex(1));
int top = lua_gettop(L); int top = lua_gettop(L);
if (top > 1) lua_settop(L, 1);
if (top < 1) lua_pushstring(L, "unknown error"); if (top < 1) lua_pushstring(L, "unknown error");
// Get mg.onerror. // Get mg.onerror.
lua_getglobal(L, "mg"); lua_getglobal(L, "mg");
lua_getfield(L, -1, "onerror"); lua_getfield(L, -1, "onerror");
// If mg.onerror is nil, silently stop processing chunks. // If mg.onerror is nil, silently stop processing chunks.
if (lua_isnil(L, -1)) { if (lua_isnil(L, -1)) {
lua_settop(L, 0);
lua_pushinteger(L, 1); lua_pushinteger(L, 1);
return 1; return 1;
} }
...@@ -3951,13 +3949,10 @@ static int lsp_mg_error(lua_State *L) { ...@@ -3951,13 +3949,10 @@ static int lsp_mg_error(lua_State *L) {
if (lua_pcall(L, 1, 1, 0)) { if (lua_pcall(L, 1, 1, 0)) {
// If mg.onerror fails, cry the error message and stop processing chunks. // If mg.onerror fails, cry the error message and stop processing chunks.
cry(conn, "mg.onerror failed: %s", lua_tostring(L, -1)); cry(conn, "mg.onerror failed: %s", lua_tostring(L, -1));
lua_settop(L, 0);
lua_pushinteger(L, 1); lua_pushinteger(L, 1);
return 1; return 1;
} }
// Return the return value from mg.onerror. Non-0 = stop processing chunks. // Return the return value from mg.onerror. Non-0 = stop processing chunks.
lua_replace(L, 1);
lua_settop(L, 1);
return 1; return 1;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment