From d8701252311751d8383c743d7d4ea37fad2ca113 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Tue, 24 Jun 2014 17:23:13 +0100 Subject: elua: use the new dedup API in lualian --- src/bin/elua/modules/lualian.lua | 18 ++---------------- src/bindings/luajit/eolian.lua | 7 +++++++ 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/bin/elua/modules/lualian.lua b/src/bin/elua/modules/lualian.lua index 311e5c05be..c2d0cb170b 100644 --- a/src/bin/elua/modules/lualian.lua +++ b/src/bin/elua/modules/lualian.lua @@ -122,20 +122,6 @@ local typeconv = function(tps, expr, isin) return build_calln(tps, expr, false) end -local dedup_name = function(classn, funcn) - local suffix = classn:match(".+_(.+)" ) or classn - local prefix = funcn:match("([^_]+)_.+") or funcn - if prefix == suffix then - if classn == suffix then - return funcn - else - return classn:match("(.+_).+") .. funcn - end - else - return classn .. "_" .. funcn - end -end - local Node = util.Object:clone { generate = function(self, s) end, @@ -184,7 +170,7 @@ local Method = Node:clone { local allocs = {} proto.allocs = allocs - proto.full_name = dedup_name(self.parent_node.prefix, proto.name) + proto.full_name = meth:full_c_name_get(self.parent_node.prefix) local dirs = eolian.parameter_dir @@ -280,7 +266,7 @@ local Property = Method:clone { local allocs = {} proto.allocs = allocs - proto.full_name = dedup_name(self.parent_node.prefix, proto.name) + proto.full_name = prop:full_c_name_get(self.parent_node.prefix) .. proto.suffix local dirs = eolian.parameter_dir diff --git a/src/bindings/luajit/eolian.lua b/src/bindings/luajit/eolian.lua index 01d7f99a49..1baf0368b0 100644 --- a/src/bindings/luajit/eolian.lua +++ b/src/bindings/luajit/eolian.lua @@ -71,6 +71,7 @@ ffi.cdef [[ Eolian_Function_Type eolian_function_type_get(Eolian_Function *function_id); Eolian_Function_Scope eolian_function_scope_get(Eolian_Function *function_id); const char *eolian_function_name_get(Eolian_Function *function_id); + const char *eolian_function_full_c_name_get(Eolian_Function function_id, const char *prefix); Eolian_Function *eolian_class_function_find_by_name(const Eolian_Class *klass, const char *func_name, Eolian_Function_Type f_type); const char *eolian_function_data_get(Eolian_Function *function_id, const char *key); Eina_Bool eolian_function_is_virtual_pure(Eolian_Function *function_id, Eolian_Function_Type f_type); @@ -190,6 +191,12 @@ M.Function = ffi.metatype("Eolian_Function", { return ffi.string(v) end, + full_c_name_get = function(self) + local v = eolian.eolian_function_full_c_name_get(self) + if v == nil then return nil end + return ffi.string(v) + end, + data_get = function(self, key) local v = eolian.eolian_function_data_get(self, key) if v == nil then return nil end -- cgit v1.2.1