/apps/lua: move game_buf to state, free it on game_end()
This commit is contained in:
		| @@ -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); | ||||
| } | ||||
|   | ||||
| @@ -8,6 +8,8 @@ | ||||
|  | ||||
| typedef struct State { | ||||
|     lua_State *L; | ||||
|     unsigned char *game_buf; | ||||
|     size_t game_buf_size; | ||||
| } State; | ||||
|  | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user