elua: Eo metatype with method table redirection

This commit is contained in:
Daniel Kolesa 2014-09-24 11:51:11 +01:00
parent 222b49ba7c
commit 0061d5a437
1 changed files with 17 additions and 0 deletions

View File

@ -181,6 +181,23 @@ M.__do_end = function()
-- only for cleanup (dtor)
end
local eo_methods = {
}
ffi.metatype("Eo", {
__index = function(self, key)
local v = rawget(eo_methods, key)
if v ~= nil then return v end
local cl = eo.eo_class_get(self)
if cl == nil then return nil end
local nm = eo.eo_class_name_get(cl)
if nm == nil then return nil end
local mt == classes[nm]
if mt == nil then return nil end
return mt[key]
end
})
M.Eo_Base = util.Object:clone {
}