From 2d8c77b7dd06be2ddce3a50c877fad3934e7ea11 Mon Sep 17 00:00:00 2001 From: Lars Mueller Date: Thu, 8 Jul 2021 20:08:28 +0200 Subject: [PATCH] Code quality --- persistence.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/persistence.lua b/persistence.lua index 1342a7b..0aa3b1a 100644 --- a/persistence.lua +++ b/persistence.lua @@ -1,5 +1,6 @@ -- Localize globals -local assert, error, io, ipairs, loadfile, math, minetest, modlib, pairs, setfenv, setmetatable, table, type = assert, error, io, ipairs, loadfile, math, minetest, modlib, pairs, setfenv, setmetatable, table, type +local assert, error, io, loadfile, math, minetest, modlib, pairs, setfenv, setmetatable, type + = assert, error, io, loadfile, math, minetest, modlib, pairs, setfenv, setmetatable, type -- Set environment local _ENV = {} @@ -9,6 +10,11 @@ lua_log_file = { -- default value reference_strings = true } + +-- Note: keys may not be marked as weak references: garbage collected log files wouldn't close the file: +-- The `__gc` metamethod doesn't work for tables in Lua 5.1; a hack using `newproxy` would be needed +-- See https://stackoverflow.com/questions/27426704/lua-5-1-workaround-for-gc-metamethod-for-tables) +-- Therefore, :close() must be called on log files to remove them from the `files` table local files = {} local metatable = {__index = lua_log_file}