/apps/lua: just free game_buf right away after it's used without keeping it around

This commit is contained in:
wanp 2024-10-07 00:37:49 -03:00
parent f646bd7adc
commit 017ce4f1d2
2 changed files with 4 additions and 5 deletions

View File

@ -285,13 +285,15 @@ void game_tick(void) {
lua_register(state->L, "text", b_text);
/* now finally get to running the code */
state->game_buf_size = file_to_bytes("/scripts/game.lua", &state->game_buf);
if (luaL_loadbuffer(state->L, (char *)state->game_buf, state->game_buf_size, "game.lua") == LUA_OK) {
unsigned char *game_buf = NULL;
size_t game_buf_size = file_to_bytes("/scripts/game.lua", &game_buf);
if (luaL_loadbuffer(state->L, (char *)game_buf, game_buf_size, "game.lua") == LUA_OK) {
if (lua_pcall(state->L, 0, 0, 0) != LUA_OK) {
log_critical("%s", lua_tostring(state->L, -1));
lua_pop(state->L, 1);
}
}
free(game_buf);
/* from this point we have access to everything defined in lua */
}
@ -307,7 +309,6 @@ void game_tick(void) {
void game_end(void) {
State *state = ctx.udata;
free(state->game_buf);
lua_close(state->L);
free(state);
}

View File

@ -8,8 +8,6 @@
typedef struct State {
lua_State *L;
unsigned char *game_buf;
size_t game_buf_size;
} State;