From 017ce4f1d260104875de62d0be3796b77ba7b3c8 Mon Sep 17 00:00:00 2001 From: wanp Date: Mon, 7 Oct 2024 00:37:49 -0300 Subject: [PATCH] /apps/lua: just free game_buf right away after it's used without keeping it around --- apps/lua/game.c | 7 ++++--- apps/lua/state.h | 2 -- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/lua/game.c b/apps/lua/game.c index 5f35919..bb9b91a 100644 --- a/apps/lua/game.c +++ b/apps/lua/game.c @@ -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); } diff --git a/apps/lua/state.h b/apps/lua/state.h index e4823e9..1f20844 100644 --- a/apps/lua/state.h +++ b/apps/lua/state.h @@ -8,8 +8,6 @@ typedef struct State { lua_State *L; - unsigned char *game_buf; - size_t game_buf_size; } State;