luapack
luapack copied to clipboard
debug.getregistry fix inside includes/init.lua
i'm sure you knew but rubat destroyed debug.getregistry, and appended a temporary fix to includes/init.lua
Here's my version of the fix, and below that is his version.
local _R
OldFindMetaTable = OldFindMetaTable or FindMetaTable
function FindMetaTable(name)
return name and _R[name] or nil
end
do
_R = setmetatable({
[1] = function() end,
[2] = _G,
[3] = {},
}, {
__index = function(obj, key)
local tab = key and oldFindMetaTable(key)
if rawget(obj, key) then
return rawget(obj, key)
elseif tab then
obj[key] = tab
return tab
else
return nil
end
end
})
end
function debug.getregistry()
return _R
end
-- Temporary hack
local meta = {}
function meta.__index(self, key)
return FindMetaTable(key)
end
local metas = {}
function meta.__newindex(self, key, value)
metas[ key ] = value
end
debug.getregistry = function()
local tbl = {}
setmetatable(tbl, meta)
return tbl
end
local oldFindMetaTable = FindMetaTable
FindMetaTable = function( name )
local f = oldFindMetaTable( name )
if ( f ) then return f end
return metas[ name ]
end