From 67c693eff14fd78c74dc91efffc0c584998f80a9 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Wed, 3 Dec 2014 15:27:38 +0000 Subject: [PATCH] elua: support is_c_only in lualian --- src/bin/elua/modules/lualian.lua | 4 ++-- src/bindings/luajit/eolian.lua | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/bin/elua/modules/lualian.lua b/src/bin/elua/modules/lualian.lua index 8d77094056..85208e17db 100644 --- a/src/bin/elua/modules/lualian.lua +++ b/src/bin/elua/modules/lualian.lua @@ -604,7 +604,7 @@ local gen_contents = function(klass) -- first try properties local props = klass:functions_get(ft.PROPERTY):to_array() for i, v in ipairs(props) do - if v:scope_get() == eolian.object_scope.PUBLIC then + if v:scope_get() == eolian.object_scope.PUBLIC and not v:is_c_only() then local ftype = v:type_get() local fread = (ftype == ft.PROPERTY or ftype == ft.PROP_GET) local fwrite = (ftype == ft.PROPERTY or ftype == ft.PROP_SET) @@ -619,7 +619,7 @@ local gen_contents = function(klass) -- then methods local meths = klass:functions_get(ft.METHOD):to_array() for i, v in ipairs(meths) do - if v:scope_get() == eolian.object_scope.PUBLIC then + if v:scope_get() == eolian.object_scope.PUBLIC and not v:is_c_only() then cnt[#cnt + 1] = Method(v) end end diff --git a/src/bindings/luajit/eolian.lua b/src/bindings/luajit/eolian.lua index d3c76aacc7..283f6f97b0 100644 --- a/src/bindings/luajit/eolian.lua +++ b/src/bindings/luajit/eolian.lua @@ -215,6 +215,7 @@ ffi.cdef [[ Eina_Bool eolian_function_is_empty(const Eolian_Function *function_id, Eolian_Function_Type f_type); Eina_Bool eolian_function_is_legacy_only(const Eolian_Function *function_id, Eolian_Function_Type ftype); Eina_Bool eolian_function_is_class(const Eolian_Function *function_id); + Eina_Bool eolian_function_is_c_only(const Eolian_Function *function_id); const Eolian_Function_Parameter *eolian_function_parameter_get_by_name(const Eolian_Function *function_id, const char *param_name); Eina_Iterator *eolian_property_keys_get(const Eolian_Function *foo_id); Eina_Iterator *eolian_property_values_get(const Eolian_Function *foo_id); @@ -669,6 +670,10 @@ M.Function = ffi.metatype("Eolian_Function", { return eolian.eolian_function_is_class(self) ~= 0 end, + is_c_only = function(self) + return eolian.eolian_function_is_c_only(self) ~= 0 + end, + parameter_get_by_name = function(self, pname) local v = eolian.eolian_function_parameter_get_by_name(self, pname) if v == nil then return nil end