q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=7806e7902430f30548cb79f474bb3c421539ccab

commit 7806e7902430f30548cb79f474bb3c421539ccab
Author: Daniel Kolesa <d.kol...@samsung.com>
Date:   Wed Feb 25 14:01:45 2015 +0000

    elua: better mixin behavior (+ fix bad lookup)
---
 src/bindings/luajit/eo.lua | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/bindings/luajit/eo.lua b/src/bindings/luajit/eo.lua
index 797aaf9..9067a05 100644
--- a/src/bindings/luajit/eo.lua
+++ b/src/bindings/luajit/eo.lua
@@ -212,9 +212,16 @@ end
 
 M.class_mixin = function(name, mixin)
     local cl = classes[name]
+    local mi = classes[mixin]
+    local ck = "__mixin_" .. mixin
+    -- do not mixin if it already has been mixed in previously
+    -- but only do it for mixins, not for ifaces, for proper lookup order
+    if mi[ck] and cl[ck] then
+        return
+    end
     -- mixin properties/events
-    mixin_tbl(cl, mixin, "__properties")
-    mixin_tbl(cl, mixin, "__events")
+    mixin_tbl(cl, mi, "__properties")
+    mixin_tbl(cl, mi, "__events")
     -- mixin the rest
     cl:mixin(classes[mixin])
 end

-- 


Reply via email to