diff --git a/src/main.c b/src/main.c index 29e5aad7..0b1a86c3 100644 --- a/src/main.c +++ b/src/main.c @@ -80,6 +80,14 @@ static void get_exe_filename(char *buf, int sz) { } +static void clearQuit(void) +{ + rencache_invalidate(); + ren_free_window_resources(); + SDL_Quit(); +} + + static void init_window_icon(void) { #ifndef _WIN32 #include "../icon.inl" @@ -121,7 +129,7 @@ int main(int argc, char **argv) { SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS); SDL_EnableScreenSaver(); SDL_EventState(SDL_DROPFILE, SDL_ENABLE); - atexit(SDL_Quit); + atexit(clearQuit); #ifdef SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR /* Available since 2.0.8 */ SDL_SetHint(SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR, "0"); @@ -158,7 +166,6 @@ init_lua: lua_pushnumber(L, get_scale()); lua_setglobal(L, "SCALE"); - char exename[2048]; get_exe_filename(exename, sizeof(exename)); lua_pushstring(L, exename); @@ -168,7 +175,6 @@ init_lua: set_macos_bundle_resources(L); enable_momentum_scroll(); #endif - const char *init_lite_code = \ "local core\n" "xpcall(function()\n" @@ -213,7 +219,6 @@ init_lua: rencache_invalidate(); goto init_lua; } - lua_close(L); ren_free_window_resources(); SDL_Quit();