refactoring

This commit is contained in:
Manuel Simon Hirsig
2016-10-24 20:50:10 +02:00
parent 489c528327
commit 1033d15eae
29 changed files with 189 additions and 189 deletions
+15 -15
View File
@@ -12,7 +12,7 @@ do
t.reset, t.reset = nil, 1
setn(t, 0)
end
public.wipe = wipe
M.wipe = wipe
CreateFrame'Frame':SetScript('OnUpdate', function()
for t in auto_release do release(t) end
@@ -42,37 +42,37 @@ do
overflow_pool[t] = true
end
end
public.release = release
M.release = release
function set_auto_release(v, enable)
if type(v) ~= 'table' then return end
auto_release[v] = enable and true or nil
end
public.set_auto_release = set_auto_release
M.set_auto_release = set_auto_release
end
public.get_t = acquire
M.get_t = acquire
function public.get_tt()
function M.get_tt()
local t = acquire()
set_auto_release(t, true)
return t
end
public.auto = setmetatable({}, {
M.auto = setmetatable({}, {
__metatable = false,
__newindex = function(_, k, v) set_auto_release(k, v) end,
})
public.temp = setmetatable({}, {
M.temp = setmetatable({}, {
__metatable = false,
__sub = function(_, v) set_auto_release(v, true); return v end,
})
public.perm = setmetatable({}, {
M.perm = setmetatable({}, {
__metatable = false,
__sub = function(_, v) set_auto_release(v, false); return v end,
})
public.init = setmetatable({}, {
M.init = setmetatable({}, {
__metatable = false,
__newindex = function(_, t, init)
wipe(t)
@@ -91,10 +91,10 @@ do
release(t)
end
end
public.ret = ret
M.ret = ret
end
public.empty = setmetatable({}, { __metatable=false, __newindex=nop })
M.empty = setmetatable({}, { __metatable=false, __newindex=nop })
local vararg
do
@@ -137,24 +137,24 @@ do
setfenv(chunk, { f=f, setn=setn, acquire=acquire, set_auto_release=set_auto_release })
return chunk()
end
public.vararg = setmetatable({}, {
M.vararg = setmetatable({}, {
__metatable = false,
__sub = function(_, v) return vararg(v) end,
})
end
public.A = vararg(function(arg)
M.A = vararg(function(arg)
set_auto_release(arg, false)
return arg
end)
public.S = vararg(function(arg)
M.S = vararg(function(arg)
local t = acquire()
for _, v in arg do
t[v] = true
end
return t
end)
public.T = vararg(function(arg)
M.T = vararg(function(arg)
local t = acquire()
for i = 1, getn(arg), 2 do
t[arg[i]] = arg[i + 1]
+2 -2
View File
@@ -37,7 +37,7 @@ function create_module(name)
if type(name) ~= 'string' then error('Invalid module name "%s".', name) end
local P, environment, interface, public_modifier, accessors, mutators, fields, public_accessors, public_mutators, public_fields
environment, interface, public_modifier = {}, {}, setmetatable({}, public_modifier_mt)
accessors = {public=function() return public_modifier end}
accessors = {M=function() return public_modifier end}
mutators = setmetatable({_=nop}, {__index=function(_, k) return function(v) define(name, k, v, true) end end})
fields = setmetatable(
{_M=environment, _G=_G, include=function(interface) include(name, interface) end, error=error, nop=nop, id=id},
@@ -49,7 +49,7 @@ function create_module(name)
setmetatable(environment, proxy_mt(fields, mutators))
setmetatable(interface, proxy_mt(public_fields, public_mutators))
P = {
defined = {_M=true, _G=true, include=true, error=true, nop=true, id=true, public=true, set__=true, require=true},
defined = {_M=true, _G=true, include=true, error=true, nop=true, id=true, M=true, set__=true, require=true},
fields = fields, accessors = accessors, mutators = mutators,
public_fields = public_fields, public_accessors = public_accessors, public_mutators = public_mutators,
}