eina_strbuf_append(buf, " *");
if (name)
{
- if (tp->type != EOLIAN_TYPE_POINTER &&
- tp->type != EOLIAN_TYPE_CLASS &&
- tp->type != EOLIAN_TYPE_COMPLEX)
+ if (eina_strbuf_string_get(buf)[eina_strbuf_length_get(buf) - 1] != '*')
eina_strbuf_append_char(buf, ' ');
eina_strbuf_append(buf, name);
}
"Eina_Accessor", "Eina_Array", "Eina_Iterator", "Eina_Hash", "Eina_List",
"Eina_Promise",
- "Eina_Value",
+ "Eina_Value", "const char *",
+
+ "void *",
"Eo_Event_Cb",
};
\
KW(accessor), KW(array), KW(iterator), KW(hash), KW(list), \
KW(promise), \
- KW(generic_value), \
+ KW(generic_value), KW(string), \
\
+ KW(void_ptr), \
KW(__builtin_event_cb), \
KW(__undefined_type), \
\
static Eina_Bool
_type_is_ownable(Eolian_Type *tp)
{
+ if (tp->type == EOLIAN_TYPE_REGULAR)
+ {
+ int kwid = eo_lexer_keyword_str_to_id(tp->name);
+ const char *ct = eo_lexer_get_c_type(kwid);
+ if (!ct)
+ return EINA_FALSE;
+ return (ct[strlen(ct) - 1] == '*');
+ }
return (tp->type == EOLIAN_TYPE_POINTER ||
tp->type == EOLIAN_TYPE_COMPLEX ||
tp->type == EOLIAN_TYPE_CLASS);