q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a9aed90fde2405d40cb51cc6ac25fd52714d82bb
commit a9aed90fde2405d40cb51cc6ac25fd52714d82bb Author: Daniel Kolesa <d.kol...@osg.samsung.com> Date: Thu Sep 14 00:34:06 2017 +0200 eolian: more relaxed rules on what is actually ownable For example, aliases to ownable types are now also ownable, which wasn't possible in the previous version, where you could only own actual expanded ownable types. --- src/lib/eolian/database_type.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/lib/eolian/database_type.c b/src/lib/eolian/database_type.c index df7cbae83b..a05fa25fa5 100644 --- a/src/lib/eolian/database_type.c +++ b/src/lib/eolian/database_type.c @@ -92,7 +92,16 @@ database_type_is_ownable(const Eolian_Type *tp, Eina_Bool term) return EINA_TRUE; const char *ct = eo_lexer_get_c_type(kwid); if (!ct) - return EINA_FALSE; + { + const Eolian_Typedecl *tpp = eolian_type_typedecl_get(tp); + if (!tpp) + return EINA_FALSE; + if (tpp->type == EOLIAN_TYPEDECL_FUNCTION_POINTER) + return EINA_TRUE; + if (tpp->type == EOLIAN_TYPEDECL_ALIAS) + return database_type_is_ownable(tpp->base_type, term); + return EINA_FALSE; + } return (ct[strlen(ct) - 1] == '*'); } return _ownable_types[tp->type]; --