diff options
author | rubenwardy <rw@rubenwardy.com> | 2019-01-31 16:35:55 +0000 |
---|---|---|
committer | Paramat <paramat@users.noreply.github.com> | 2019-01-31 16:35:55 +0000 |
commit | 572ba83b3084e3d3abd294acb914746d29822a98 (patch) | |
tree | 2fb0235c3b73cce8bbd80292d7a18c763eb982d2 /src/script/lua_api | |
parent | 944e9f5acbac8971643553eb6e351abe362c4c17 (diff) | |
download | minetest-572ba83b3084e3d3abd294acb914746d29822a98.tar.gz minetest-572ba83b3084e3d3abd294acb914746d29822a98.tar.bz2 minetest-572ba83b3084e3d3abd294acb914746d29822a98.zip |
Content store: Fix storage leak by storing screenshots in cache (#8137)
Diffstat (limited to 'src/script/lua_api')
-rw-r--r-- | src/script/lua_api/l_mainmenu.cpp | 11 | ||||
-rw-r--r-- | src/script/lua_api/l_mainmenu.h | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp index 9b9211593..9a64bd0ab 100644 --- a/src/script/lua_api/l_mainmenu.cpp +++ b/src/script/lua_api/l_mainmenu.cpp @@ -683,6 +683,12 @@ int ModApiMainMenu::l_get_texturepath_share(lua_State *L) return 1; } +int ModApiMainMenu::l_get_cache_path(lua_State *L) +{ + lua_pushstring(L, fs::RemoveRelativePathComponents(porting::path_cache).c_str()); + return 1; +} + /******************************************************************************/ int ModApiMainMenu::l_create_dir(lua_State *L) { const char *path = luaL_checkstring(L, 1); @@ -855,6 +861,9 @@ bool ModApiMainMenu::mayModifyPath(const std::string &path) if (fs::PathStartsWith(path, fs::RemoveRelativePathComponents(porting::path_user + DIR_DELIM "worlds"))) return true; + if (fs::PathStartsWith(path, fs::RemoveRelativePathComponents(porting::path_cache))) + return true; + return false; } @@ -1043,6 +1052,7 @@ void ModApiMainMenu::Initialize(lua_State *L, int top) API_FCT(get_gamepath); API_FCT(get_texturepath); API_FCT(get_texturepath_share); + API_FCT(get_cache_path); API_FCT(create_dir); API_FCT(delete_dir); API_FCT(copy_dir); @@ -1071,6 +1081,7 @@ void ModApiMainMenu::InitializeAsync(lua_State *L, int top) API_FCT(get_gamepath); API_FCT(get_texturepath); API_FCT(get_texturepath_share); + API_FCT(get_cache_path); API_FCT(create_dir); API_FCT(delete_dir); API_FCT(copy_dir); diff --git a/src/script/lua_api/l_mainmenu.h b/src/script/lua_api/l_mainmenu.h index 9e7792197..4a664359a 100644 --- a/src/script/lua_api/l_mainmenu.h +++ b/src/script/lua_api/l_mainmenu.h @@ -120,6 +120,8 @@ private: static int l_get_texturepath_share(lua_State *L); + static int l_get_cache_path(lua_State *L); + static int l_create_dir(lua_State *L); static int l_delete_dir(lua_State *L); |