diff options
Diffstat (limited to 'lib/gall/util.lua')
-rw-r--r-- | lib/gall/util.lua | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/gall/util.lua b/lib/gall/util.lua index d6c5297..48181be 100644 --- a/lib/gall/util.lua +++ b/lib/gall/util.lua @@ -10,14 +10,15 @@ local function deep_copy(t, memo) if not memo then memo = {} end if memo[t] then return memo[t] end local ret = {} + memo[t] = ret local kk, vv for k, v in pairs(t) do kk, vv = k, v if type(k) == "table" then - kk = _deep_copy(k) + kk = deep_copy(k, memo) end if type(v) == "table" then - vv = _deep_copy(v) + vv = deep_copy(v, memo) end ret[kk] = vv end |