/apps/lua: move game_buf to state, free it on game_end()

This commit is contained in:
veclav talica 2024-10-06 20:14:21 +03:00
parent 6844049279
commit ae0da18e25
2 changed files with 5 additions and 3 deletions

View File

@ -283,9 +283,8 @@ void game_tick(void) {
lua_register(state->L, "text", b_text);
/* now finally get to running the code */
unsigned char *game_buf = NULL;
int64_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) {
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) {
if (lua_pcall(state->L, 0, 0, 0) != LUA_OK) {
log_critical("%s", lua_tostring(state->L, -1));
lua_pop(state->L, 1);
@ -306,6 +305,7 @@ 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,6 +8,8 @@
typedef struct State {
lua_State *L;
unsigned char *game_buf;
size_t game_buf_size;
} State;