Lua log files: Fix infinities

master
Lars Mueller 2021-04-22 11:54:25 +02:00
parent 95e4caa2f8
commit 44ad494d99
2 changed files with 4 additions and 3 deletions

View File

@ -13,7 +13,8 @@ end
function lua_log_file:load()
-- Bytecode is blocked by the engine
local read = assert(loadfile(self.file_path))
local env = {}
-- math.huge is serialized to inf
local env = {inf = math.huge}
setfenv(read, env)
read()
env.R = env.R or {{}}

View File

@ -196,10 +196,10 @@ local logfile = persistence.lua_log_file.new(mod.get_resource"logfile.test.lua",
logfile:init()
logfile.root = {}
logfile:rewrite()
logfile:set_root({a = 1}, {b = 2, c = 3})
logfile:set_root({a = 1}, {b = 2, c = 3, d = _G.math.huge, e = -_G.math.huge})
logfile:close()
logfile:init()
assert(table.equals(logfile.root, {[{a = 1}] = {b = 2, c = 3}}))
assert(table.equals(logfile.root, {[{a = 1}] = {b = 2, c = 3, d = _G.math.huge, e = -_G.math.huge}}))
-- in-game tests & b3d testing
local tests = {