Reset Lua stack to drop unused returned values (#382)

Since some Lua code may return values that will be left on stack, they
need to be removed to avoid growing the stack unnecessarily.
This commit is contained in:
Paul Kulchenko 2022-04-09 12:36:05 -07:00 committed by GitHub
parent d31bebdd2d
commit 668dc42bac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -176,6 +176,7 @@ STATIC_YOINK("zip_uri_support");
char *s = LuaFormatStack(L); \
WARNF("lua stack should be empty!\n%s", s); \
free(s); \
lua_settop(L, 0); \
} \
} while (0)
@ -1065,9 +1066,9 @@ static bool LuaOnClientConnection(void) {
dropit = lua_toboolean(L, -1);
} else {
LogLuaError("OnClientConnection", lua_tostring(L, -1));
lua_pop(L, 1); // pop error
dropit = false;
}
lua_pop(L, 1); // pop result or error
AssertLuaStackIsEmpty(L);
return dropit;
#else