summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@samsung.com>2014-06-30 17:41:30 +0100
committerDaniel Kolesa <d.kolesa@samsung.com>2014-06-30 17:41:30 +0100
commitf48d57b7f0ab44c1166c14e19a631b99a7368e0e (patch)
treeb1682a935f4d2e50eb6302c28966f0d6f9500077
parent8d6e47107b7f7dfe14d3e85460b8717b0a55520b (diff)
parentd967b6df32e61417d3456b48ef146f7ac698cbbb (diff)
downloadefl-f48d57b7f0ab44c1166c14e19a631b99a7368e0e.tar.gz
Merging 'devs/q66/eolian_types'
This gets in new type syntax in eo files as well as brand new API for handling types and updated generators.
-rw-r--r--src/bin/eolian/eo_generator.c49
-rw-r--r--src/bin/eolian/impl_generator.c21
-rw-r--r--src/bin/eolian/legacy_generator.c43
-rw-r--r--src/bin/eolian_cxx/comments.cc6
-rw-r--r--src/bin/eolian_cxx/convert.cc28
-rw-r--r--src/lib/ecore/ecore_animator.eo4
-rw-r--r--src/lib/ecore/ecore_idle_enterer.eo4
-rw-r--r--src/lib/ecore/ecore_idle_exiter.eo2
-rw-r--r--src/lib/ecore/ecore_idler.eo2
-rw-r--r--src/lib/ecore/ecore_job.eo2
-rw-r--r--src/lib/ecore/ecore_poll.eo2
-rw-r--r--src/lib/ecore/ecore_timer.eo4
-rw-r--r--src/lib/ecore_audio/ecore_audio.eo4
-rw-r--r--src/lib/edje/edje.eo296
-rw-r--r--src/lib/eo/eo_base.eo30
-rw-r--r--src/lib/eolian/Eolian.h179
-rw-r--r--src/lib/eolian/eo_definitions.c31
-rw-r--r--src/lib/eolian/eo_definitions.h34
-rw-r--r--src/lib/eolian/eo_lexer.c36
-rw-r--r--src/lib/eolian/eo_lexer.h33
-rw-r--r--src/lib/eolian/eo_parser.c204
-rw-r--r--src/lib/eolian/eolian_database.c285
-rw-r--r--src/lib/eolian/eolian_database.h2
-rw-r--r--src/lib/evas/canvas/evas.eo150
-rw-r--r--src/lib/evas/canvas/evas_3d_camera.eo2
-rw-r--r--src/lib/evas/canvas/evas_3d_mesh.eo18
-rw-r--r--src/lib/evas/canvas/evas_3d_node.eo4
-rw-r--r--src/lib/evas/canvas/evas_3d_texture.eo6
-rw-r--r--src/lib/evas/canvas/evas_box.eo22
-rw-r--r--src/lib/evas/canvas/evas_image.eo20
-rw-r--r--src/lib/evas/canvas/evas_object.eo18
-rw-r--r--src/lib/evas/canvas/evas_object_smart.eo16
-rw-r--r--src/lib/evas/canvas/evas_table.eo20
-rw-r--r--src/lib/evas/canvas/evas_text.eo12
-rw-r--r--src/lib/evas/canvas/evas_textblock.eo20
-rw-r--r--src/lib/evas/canvas/evas_textgrid.eo6
-rw-r--r--src/tests/eolian/data/complex_type.eo8
-rw-r--r--src/tests/eolian/data/object_impl.eo8
-rw-r--r--src/tests/eolian/data/object_impl_add.eo2
-rw-r--r--src/tests/eolian/data/typedef.eo4
-rw-r--r--src/tests/eolian/eolian_parsing.c125
41 files changed, 1113 insertions, 649 deletions
diff --git a/src/bin/eolian/eo_generator.c b/src/bin/eolian/eo_generator.c
index afea024025..5f30ff5c02 100644
--- a/src/bin/eolian/eo_generator.c
+++ b/src/bin/eolian/eo_generator.c
@@ -89,23 +89,24 @@ eo_fundef_generate(const Eolian_Class class, Eolian_Function func, Eolian_Functi
char descname[0xFF];
char *tmpstr = malloc(0x1FF);
Eina_Bool var_as_ret = EINA_FALSE;
+ Eolian_Type rettypet = NULL;
const char *rettype = NULL;
Eina_Bool ret_const = EINA_FALSE;
Eolian_Function_Scope scope = eolian_function_scope_get(func);
_class_func_env_create(class, eolian_function_name_get(func), ftype, &func_env);
char *fsuffix = "";
- rettype = eolian_function_return_type_get(func, ftype);
+ rettypet = eolian_function_return_type_get(func, ftype);
if (ftype == EOLIAN_PROP_GET)
{
fsuffix = "_get";
- if (!rettype)
+ if (!rettypet)
{
l = eolian_parameters_list_get(func);
if (eina_list_count(l) == 1)
{
data = eina_list_data_get(l);
- eolian_parameter_information_get((Eolian_Function_Parameter)data, NULL, &rettype, NULL, NULL);
+ eolian_parameter_information_get((Eolian_Function_Parameter)data, NULL, &rettypet, NULL, NULL);
var_as_ret = EINA_TRUE;
ret_const = eolian_parameter_const_attribute_get(data, EINA_TRUE);
}
@@ -151,27 +152,35 @@ eo_fundef_generate(const Eolian_Class class, Eolian_Function func, Eolian_Functi
EINA_LIST_FOREACH(eolian_property_keys_list_get(func), l, data)
{
+ Eolian_Type ptypet;
const char *pname;
const char *ptype;
const char *pdesc = NULL;
- eolian_parameter_information_get((Eolian_Function_Parameter)data, NULL, &ptype, &pname, &pdesc);
+ eolian_parameter_information_get((Eolian_Function_Parameter)data, NULL, &ptypet, &pname, &pdesc);
+
+ ptype = eolian_type_c_type_get(ptypet);
eina_strbuf_append_printf(str_pardesc, tmpl_eo_pardesc, "in", pname, pdesc?pdesc:"No description supplied.");
if (eina_strbuf_length_get(str_par)) eina_strbuf_append(str_par, ", ");
eina_strbuf_append_printf(str_par, "%s %s", ptype, pname);
+ eina_stringshare_del(ptype);
}
if (!var_as_ret)
{
EINA_LIST_FOREACH(eolian_parameters_list_get(func), l, data)
{
+ Eolian_Type ptypet;
const char *pname;
const char *ptype;
const char *pdesc;
Eina_Bool add_star = EINA_FALSE;
Eolian_Parameter_Dir pdir;
- eolian_parameter_information_get((Eolian_Function_Parameter)data, &pdir, &ptype, &pname, &pdesc);
+ eolian_parameter_information_get((Eolian_Function_Parameter)data, &pdir, &ptypet, &pname, &pdesc);
+
+ ptype = eolian_type_c_type_get(ptypet);
+
Eina_Bool is_const = eolian_parameter_const_attribute_get(data, ftype == EOLIAN_PROP_GET);
if (ftype == EOLIAN_PROP_GET) {
add_star = EINA_TRUE;
@@ -190,9 +199,12 @@ eo_fundef_generate(const Eolian_Class class, Eolian_Function func, Eolian_Functi
is_const?"const ":"",
ptype, had_star?"":" ", add_star?"*":"", pname);
+ eina_stringshare_del(ptype);
}
}
+ if (rettypet) rettype = eolian_type_c_type_get(rettypet);
+
tmpstr[0] = '\0';
sprintf(tmpstr, "%s%s%s",
ret_const ? "const " : "",
@@ -207,6 +219,8 @@ eo_fundef_generate(const Eolian_Class class, Eolian_Function func, Eolian_Functi
eina_strbuf_replace_all(str_func, "@#ret_desc", eina_strbuf_string_get(str_retdesc));
eina_strbuf_replace_all(str_func, "@#list_typecheck", eina_strbuf_string_get(str_typecheck));
+ if (rettype) eina_stringshare_del(rettype);
+
free(tmpstr);
eina_strbuf_free(str_par);
eina_strbuf_free(str_retdesc);
@@ -317,6 +331,7 @@ eo_bind_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_F
_eolian_class_func_vars func_env;
const char *suffix = "";
Eina_Bool var_as_ret = EINA_FALSE;
+ Eolian_Type rettypet = NULL;
const char *rettype = NULL;
const char *retname = NULL;
Eina_Bool ret_const = EINA_FALSE;
@@ -330,19 +345,19 @@ eo_bind_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_F
Eina_Strbuf *params = eina_strbuf_new(); /* only variables names */
Eina_Strbuf *full_params = eina_strbuf_new(); /* variables types + names */
- rettype = eolian_function_return_type_get(funcid, ftype);
+ rettypet = eolian_function_return_type_get(funcid, ftype);
retname = "ret";
if (ftype == EOLIAN_PROP_GET)
{
suffix = "_get";
add_star = EINA_TRUE;
- if (!rettype)
+ if (!rettypet)
{
const Eina_List *l = eolian_parameters_list_get(funcid);
if (eina_list_count(l) == 1)
{
void* data = eina_list_data_get(l);
- eolian_parameter_information_get((Eolian_Function_Parameter)data, NULL, &rettype, &retname, NULL);
+ eolian_parameter_information_get((Eolian_Function_Parameter)data, NULL, &rettypet, &retname, NULL);
var_as_ret = EINA_TRUE;
ret_const = eolian_parameter_const_attribute_get(data, EINA_TRUE);
}
@@ -358,24 +373,33 @@ eo_bind_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_F
EINA_LIST_FOREACH(eolian_property_keys_list_get(funcid), l, data)
{
+ Eolian_Type ptypet;
const char *pname;
const char *ptype;
- eolian_parameter_information_get((Eolian_Function_Parameter)data, NULL, &ptype, &pname, NULL);
+ eolian_parameter_information_get((Eolian_Function_Parameter)data, NULL, &ptypet, &pname, NULL);
+
+ ptype = eolian_type_c_type_get(ptypet);
+
Eina_Bool is_const = eolian_parameter_const_attribute_get(data, ftype == EOLIAN_PROP_GET);
if (eina_strbuf_length_get(params)) eina_strbuf_append(params, ", ");
eina_strbuf_append_printf(params, "%s", pname);
eina_strbuf_append_printf(full_params, ", %s%s %s",
is_const?"const ":"",
ptype, pname);
+ eina_stringshare_del(ptype);
}
if (!var_as_ret)
{
EINA_LIST_FOREACH(eolian_parameters_list_get(funcid), l, data)
{
+ Eolian_Type ptypet;
const char *pname;
const char *ptype;
Eolian_Parameter_Dir pdir;
- eolian_parameter_information_get((Eolian_Function_Parameter)data, &pdir, &ptype, &pname, NULL);
+ eolian_parameter_information_get((Eolian_Function_Parameter)data, &pdir, &ptypet, &pname, NULL);
+
+ ptype = eolian_type_c_type_get(ptypet);
+
Eina_Bool is_const = eolian_parameter_const_attribute_get(data, ftype == EOLIAN_PROP_GET);
Eina_Bool had_star = !!strchr(ptype, '*');
if (ftype == EOLIAN_UNRESOLVED || ftype == EOLIAN_METHOD) add_star = (pdir == EOLIAN_OUT_PARAM);
@@ -384,9 +408,12 @@ eo_bind_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_F
eina_strbuf_append_printf(full_params, ", %s%s%s%s%s",
is_const?"const ":"",
ptype, had_star?"":" ", add_star?"*":"", pname);
+ eina_stringshare_del(ptype);
}
}
+ if (rettypet) rettype = eolian_type_c_type_get(rettypet);
+
if (need_implementation)
{
Eina_Strbuf *ret_param = eina_strbuf_new();
@@ -451,6 +478,8 @@ eo_bind_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_F
}
eina_strbuf_append(buf, eina_strbuf_string_get(fbody));
+ if (rettype) eina_stringshare_del(rettype);
+
eina_strbuf_free(va_args);
eina_strbuf_free(full_params);
eina_strbuf_free(params);
diff --git a/src/bin/eolian/impl_generator.c b/src/bin/eolian/impl_generator.c
index d3ec76e8a4..175db2c6e1 100644
--- a/src/bin/eolian/impl_generator.c
+++ b/src/bin/eolian/impl_generator.c
@@ -16,9 +16,11 @@ _params_generate(Eolian_Function foo, Eolian_Function_Type ftype, Eina_Bool var_
eina_strbuf_reset(short_params);
EINA_LIST_FOREACH(eolian_property_keys_list_get(foo), itr, param)
{
+ Eolian_Type ptypet;
const char *pname;
const char *ptype;
- eolian_parameter_information_get(param, NULL, &ptype, &pname, NULL);
+ eolian_parameter_information_get(param, NULL, &ptypet, &pname, NULL);
+ ptype = eolian_type_c_type_get(ptypet);
Eina_Bool had_star = !!strchr(ptype, '*');
Eina_Bool is_const = eolian_parameter_const_attribute_get(param, ftype == EOLIAN_PROP_GET);
if (eina_strbuf_length_get(params))
@@ -31,16 +33,19 @@ _params_generate(Eolian_Function foo, Eolian_Function_Type ftype, Eina_Bool var_
had_star?"":" ",
pname);
eina_strbuf_append_printf(short_params, "%s", pname);
+ eina_stringshare_del(ptype);
}
if (!var_as_ret)
{
Eina_Bool add_star = (ftype == EOLIAN_PROP_GET);
EINA_LIST_FOREACH(eolian_parameters_list_get(foo), itr, param)
{
+ Eolian_Type ptypet;
const char *pname;
const char *ptype;
Eolian_Parameter_Dir pdir;
- eolian_parameter_information_get(param, &pdir, &ptype, &pname, NULL);
+ eolian_parameter_information_get(param, &pdir, &ptypet, &pname, NULL);
+ ptype = eolian_type_c_type_get(ptypet);
Eina_Bool is_const = eolian_parameter_const_attribute_get(param, ftype == EOLIAN_PROP_GET);
Eina_Bool had_star = !!strchr(ptype, '*');
if (ftype == EOLIAN_UNRESOLVED || ftype == EOLIAN_METHOD) add_star = (pdir == EOLIAN_OUT_PARAM);
@@ -53,6 +58,7 @@ _params_generate(Eolian_Function foo, Eolian_Function_Type ftype, Eina_Bool var_
is_const?"const ":"",
ptype, had_star?"":" ", add_star?"*":"", pname);
eina_strbuf_append_printf(short_params, "%s", pname);
+ eina_stringshare_del(ptype);
}
}
return EINA_TRUE;
@@ -136,14 +142,14 @@ _prototype_generate(Eolian_Function foo, Eolian_Function_Type ftype, Eina_Strbuf
if (_function_exists(func_name, buffer)) goto end;
printf("Generation of function %s\n", func_name);
- const char *rettype = eolian_function_return_type_get(foo, ftype);
- if (ftype == EOLIAN_PROP_GET && !rettype)
+ Eolian_Type rettypet = eolian_function_return_type_get(foo, ftype);
+ if (ftype == EOLIAN_PROP_GET && !rettypet)
{
const Eina_List *l = eolian_parameters_list_get(foo);
if (eina_list_count(l) == 1)
{
Eolian_Function_Parameter param = eina_list_data_get(l);
- eolian_parameter_information_get(param, NULL, &rettype, NULL, NULL);
+ eolian_parameter_information_get(param, NULL, &rettypet, NULL, NULL);
var_as_ret = EINA_TRUE;
ret_const = eolian_parameter_const_attribute_get(param, EINA_TRUE);
}
@@ -164,6 +170,9 @@ _prototype_generate(Eolian_Function foo, Eolian_Function_Type ftype, Eina_Strbuf
eina_strbuf_string_get(short_params));
}
+ const char *rettype = NULL;
+ if (rettypet) rettype = eolian_type_c_type_get(rettypet);
+
eina_strbuf_append_printf(buffer,
"EOLIAN static %s%s\n%s(%sEo *obj, %s *pd%s%s)\n{\n%s\n}\n\n",
ret_const?"const ":"", !rettype?"void":rettype,
@@ -175,6 +184,8 @@ _prototype_generate(Eolian_Function foo, Eolian_Function_Type ftype, Eina_Strbuf
eina_strbuf_string_get(super_invok)
);
+ if (rettype) eina_stringshare_del(rettype);
+
end:
eina_strbuf_free(short_params);
eina_strbuf_free(params);
diff --git a/src/bin/eolian/legacy_generator.c b/src/bin/eolian/legacy_generator.c
index 6d6c3bd5b3..cb93ec8346 100644
--- a/src/bin/eolian/legacy_generator.c
+++ b/src/bin/eolian/legacy_generator.c
@@ -47,6 +47,7 @@ _eapi_decl_func_generate(Eolian_Class class, Eolian_Function funcid, Eolian_Func
_eolian_class_func_vars func_env;
const char *funcname = eolian_function_name_get(funcid);
const char *suffix = "";
+ Eolian_Type rettypet = NULL;
const char *rettype = NULL;
Eina_Bool var_as_ret = EINA_FALSE;
Eina_Bool add_star = EINA_FALSE;
@@ -62,18 +63,18 @@ _eapi_decl_func_generate(Eolian_Class class, Eolian_Function funcid, Eolian_Func
Eina_Strbuf *descparam = eina_strbuf_new();
_class_func_env_create(class, funcname, ftype, &func_env);
- rettype = eolian_function_return_type_get(funcid, ftype);
+ rettypet = eolian_function_return_type_get(funcid, ftype);
if (ftype == EOLIAN_PROP_GET)
{
suffix = "_get";
add_star = EINA_TRUE;
- if (!rettype)
+ if (!rettypet)
{
l = eolian_parameters_list_get(funcid);
if (eina_list_count(l) == 1)
{
data = eina_list_data_get(l);
- eolian_parameter_information_get((Eolian_Function_Parameter)data, NULL, &rettype, NULL, NULL);
+ eolian_parameter_information_get((Eolian_Function_Parameter)data, NULL, &rettypet, NULL, NULL);
var_as_ret = EINA_TRUE;
ret_const = eolian_parameter_const_attribute_get(data, EINA_TRUE);
}
@@ -105,14 +106,17 @@ _eapi_decl_func_generate(Eolian_Class class, Eolian_Function funcid, Eolian_Func
EINA_LIST_FOREACH(eolian_property_keys_list_get(funcid), l, data)
{
+ Eolian_Type ptypet;
const char *pname;
const char *pdesc;
const char *ptype;
- eolian_parameter_information_get((Eolian_Function_Parameter)data, NULL, &ptype, &pname, &pdesc);
+ eolian_parameter_information_get((Eolian_Function_Parameter)data, NULL, &ptypet, &pname, &pdesc);
+ ptype = eolian_type_c_type_get(ptypet);
leg_param_idx++;
eina_strbuf_append_printf(fparam, ", %s%s %s",
eolian_parameter_const_attribute_get(data, ftype == EOLIAN_PROP_GET)?"const":"",
ptype, pname);
+ eina_stringshare_del(ptype);
eina_strbuf_append_printf(descparam, " * @param[in] %s %s\n", pname, pdesc?pdesc:"No description supplied.");
if (eolian_parameter_is_nonull((Eolian_Function_Parameter)data))
{
@@ -129,12 +133,14 @@ _eapi_decl_func_generate(Eolian_Class class, Eolian_Function funcid, Eolian_Func
{
EINA_LIST_FOREACH(eolian_parameters_list_get(funcid), l, data)
{
+ Eolian_Type ptypet;
const char *pname;
const char *pdesc;
const char *ptype;
Eolian_Parameter_Dir pdir;
const char *str_dir[] = {"in", "out", "inout"};
- eolian_parameter_information_get((Eolian_Function_Parameter)data, &pdir, &ptype, &pname, &pdesc);
+ eolian_parameter_information_get((Eolian_Function_Parameter)data, &pdir, &ptypet, &pname, &pdesc);
+ ptype = eolian_type_c_type_get(ptypet);
Eina_Bool had_star = !!strchr(ptype, '*');
if (ftype == EOLIAN_UNRESOLVED || ftype == EOLIAN_METHOD) add_star = (pdir == EOLIAN_OUT_PARAM);
if (ftype == EOLIAN_PROP_GET) pdir = EOLIAN_OUT_PARAM;
@@ -143,6 +149,7 @@ _eapi_decl_func_generate(Eolian_Class class, Eolian_Function funcid, Eolian_Func
eina_strbuf_append_printf(fparam, ", %s%s%s%s%s",
eolian_parameter_const_attribute_get(data, ftype == EOLIAN_PROP_GET)?"const ":"",
ptype, had_star?"":" ", add_star?"*":"", pname);
+ eina_stringshare_del(ptype);
const char *dir_str = str_dir[(int)pdir];
eina_strbuf_append_printf(descparam, " * @param[%s] %s %s\n", dir_str, pname, pdesc?pdesc:"No description supplied.");
if (eolian_parameter_is_nonull((Eolian_Function_Parameter)data))
@@ -159,6 +166,8 @@ _eapi_decl_func_generate(Eolian_Class class, Eolian_Function funcid, Eolian_Func
}
if (flags) eina_strbuf_append_printf(flags, ")");
+ if (rettypet) rettype = eolian_type_c_type_get(rettypet);
+
eina_strbuf_replace_all(fbody, "@#params", eina_strbuf_string_get(fparam));
eina_strbuf_replace_all(fbody, "@#list_desc_param", eina_strbuf_string_get(descparam));
eina_strbuf_reset(fparam);
@@ -179,6 +188,8 @@ _eapi_decl_func_generate(Eolian_Class class, Eolian_Function funcid, Eolian_Func
eina_strbuf_replace_all(fbody, "@#flags", (eolian_function_return_is_warn_unused(funcid, ftype)) ? " EINA_WARN_UNUSED_RESULT" : "");
eina_strbuf_append(buf, eina_strbuf_string_get(fbody));
+ if (rettype) eina_stringshare_del(rettype);
+
end:
eina_strbuf_free(flags);
eina_strbuf_free(fbody);
@@ -192,6 +203,7 @@ _eapi_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_Fun
_eolian_class_func_vars func_env;
char tmpstr[0xFF];
Eina_Bool var_as_ret = EINA_FALSE;
+ Eolian_Type rettypet = NULL;
const char *rettype = NULL;
const char *retname = NULL;
Eina_Bool ret_const = EINA_FALSE;
@@ -203,19 +215,20 @@ _eapi_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_Fun
Eina_Strbuf *eoparam = eina_strbuf_new();
_class_func_env_create(class, eolian_function_name_get(funcid), ftype, &func_env);
- rettype = eolian_function_return_type_get(funcid, ftype);
+ rettypet = eolian_function_return_type_get(funcid, ftype);
+ if (rettypet) rettype = eolian_type_c_type_get(rettypet);
if (rettype && !strcmp(rettype, "void")) ret_is_void = EINA_TRUE;
retname = "ret";
if (ftype == EOLIAN_PROP_GET)
{
add_star = EINA_TRUE;
- if (!rettype)
+ if (!rettypet)
{
const Eina_List *l = eolian_parameters_list_get(funcid);
if (eina_list_count(l) == 1)
{
void* data = eina_list_data_get(l);
- eolian_parameter_information_get((Eolian_Function_Parameter)data, NULL, &rettype, &retname, NULL);
+ eolian_parameter_information_get((Eolian_Function_Parameter)data, NULL, &rettypet, &retname, NULL);
var_as_ret = EINA_TRUE;
ret_const = eolian_parameter_const_attribute_get(data, EINA_TRUE);
}
@@ -224,6 +237,8 @@ _eapi_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_Fun
if (func_env.legacy_func[0] == '\0') goto end;
+ if (!rettype && rettypet) rettype = eolian_type_c_type_get(rettypet);
+
if (rettype && (!ret_is_void))
eina_strbuf_append(fbody, tmpl_eapi_body);
else
@@ -239,12 +254,15 @@ _eapi_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_Fun
EINA_LIST_FOREACH(eolian_property_keys_list_get(funcid), l, data)
{
+ Eolian_Type ptypet;
const char *pname;
const char *ptype;
- eolian_parameter_information_get((Eolian_Function_Parameter)data, NULL, &ptype, &pname, NULL);
+ eolian_parameter_information_get((Eolian_Function_Parameter)data, NULL, &ptypet, &pname, NULL);
+ ptype = eolian_type_c_type_get(ptypet);
eina_strbuf_append_printf(fparam, ", %s%s %s",
eolian_parameter_const_attribute_get(data, ftype == EOLIAN_PROP_GET)?"const ":"",
ptype, pname);
+ eina_stringshare_del(ptype);
if (eina_strbuf_length_get(eoparam)) eina_strbuf_append(eoparam, ", ");
eina_strbuf_append_printf(eoparam, "%s", pname);
}
@@ -252,15 +270,18 @@ _eapi_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_Fun
{
EINA_LIST_FOREACH(eolian_parameters_list_get(funcid), l, data)
{
+ Eolian_Type ptypet;
const char *pname;
const char *ptype;
Eolian_Parameter_Dir pdir;
- eolian_parameter_information_get((Eolian_Function_Parameter)data, &pdir, &ptype, &pname, NULL);
+ eolian_parameter_information_get((Eolian_Function_Parameter)data, &pdir, &ptypet, &pname, NULL);
+ ptype = eolian_type_c_type_get(ptypet);
Eina_Bool had_star = !!strchr(ptype, '*');
if (ftype == EOLIAN_UNRESOLVED || ftype == EOLIAN_METHOD) add_star = (pdir == EOLIAN_OUT_PARAM);
eina_strbuf_append_printf(fparam, ", %s%s%s%s%s",
eolian_parameter_const_attribute_get(data, ftype == EOLIAN_PROP_GET)?"const ":"",
ptype, had_star?"":" ", add_star?"*":"", pname);
+ eina_stringshare_del(ptype);
if (eina_strbuf_length_get(eoparam)) eina_strbuf_append(eoparam, ", ");
eina_strbuf_append_printf(eoparam, "%s", pname);
}
@@ -292,6 +313,8 @@ _eapi_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_Fun
eina_strbuf_append(buf, eina_strbuf_string_get(fbody));
+ if (rettype) eina_stringshare_del(rettype);
+
end:
eina_strbuf_free(fbody);
eina_strbuf_free(fparam);
diff --git a/src/bin/eolian_cxx/comments.cc b/src/bin/eolian_cxx/comments.cc
index d82f2b424c..32eec8bcda 100644
--- a/src/bin/eolian_cxx/comments.cc
+++ b/src/bin/eolian_cxx/comments.cc
@@ -60,8 +60,12 @@ static std::string
_comment_return(Eolian_Function function,
Eolian_Function_Type rettype)
{
+ Eolian_Type rettypet = eolian_function_return_type_get(function, rettype);
+ const char *rettypes = NULL;
+ if (rettypet) rettypes = eolian_type_c_type_get(rettypet);
std::string doc = "";
- std::string ret = safe_str(eolian_function_return_type_get(function, rettype));
+ std::string ret = safe_str(rettypes);
+ if (rettypes) eina_stringshare_del(rettypes);
std::string comment = safe_str(eolian_function_return_comment_get(function, rettype));
if (ret != "void" && ret != "" && comment != "")
{
diff --git a/src/bin/eolian_cxx/convert.cc b/src/bin/eolian_cxx/convert.cc
index dfb7272d6d..b915ed82b7 100644
--- a/src/bin/eolian_cxx/convert.cc
+++ b/src/bin/eolian_cxx/convert.cc
@@ -27,13 +27,16 @@ static std::string
_resolve_param_type(Eolian_Function_Parameter id, bool is_get)
{
Eolian_Parameter_Dir dir;
- const char *type;
+ Eolian_Type typet;
+ const char *type = NULL;
bool is_const;
std::string res;
- eolian_parameter_information_get(id, &dir, &type, NULL, NULL);
+ eolian_parameter_information_get(id, &dir, &typet, NULL, NULL);
+ if (typet) type = eolian_type_c_type_get(typet);
is_const = eolian_parameter_const_attribute_get(id, is_get);
res = safe_str(type);
+ eina_stringshare_del(type);
assert(res != "");
if (is_const) res = std::string("const ") + res;
if (dir == EOLIAN_OUT_PARAM || dir == EOLIAN_INOUT_PARAM) res += "*";
@@ -91,8 +94,11 @@ _get_properties(const Eolian_Class klass)
getter.type = efl::eolian::eo_function::regular_;
getter.name = name + "_get";
getter.impl = _dedup_func_name(property, (prefix != "" ? prefix : cxx_classname)) + "_get";
- std::string ret = safe_str
- (eolian_function_return_type_get(property, EOLIAN_PROP_GET));
+ Eolian_Type tp = eolian_function_return_type_get(property, EOLIAN_PROP_GET);
+ const char *tps = NULL;
+ if (tp) tps = eolian_type_c_type_get(tp);
+ std::string ret = safe_str(tps);
+ if (tps) eina_stringshare_del(tps);
if (ret == "") ret = "void";
// if the getter has a single parameter and void return
@@ -137,8 +143,11 @@ _get_properties(const Eolian_Class klass)
setter.name = name + "_set";
setter.impl = _dedup_func_name(property, (prefix != "" ? prefix : cxx_classname)) + "_set";
setter.params = params;
- setter.ret = safe_str(eolian_function_return_type_get
- (property, EOLIAN_PROP_SET));
+ Eolian_Type tp = eolian_function_return_type_get(property, EOLIAN_PROP_SET);
+ const char *tps = NULL;
+ if (tp) tps = eolian_type_c_type_get(tp);
+ setter.ret = safe_str(tps);
+ if (tps) eina_stringshare_del(tps);
if (setter.ret == "") setter.ret = "void";
setter.comment = detail::eolian_property_setter_comment(property);
container.push_back(setter);
@@ -250,8 +259,11 @@ convert_eolian_functions(efl::eolian::eo_class& cls, const Eolian_Class klass)
function.type = efl::eolian::eo_function::regular_;
function.name = safe_str(eolian_function_name_get(eolian_function));
function.impl = _dedup_func_name(eolian_function, (prefix != "" ? prefix : cls.name));
- function.ret = safe_str(eolian_function_return_type_get
- (eolian_function, EOLIAN_METHOD));
+ Eolian_Type tp = eolian_function_return_type_get(eolian_function, EOLIAN_METHOD);
+ const char *tps = NULL;
+ if (tp) tps = eolian_type_c_type_get(tp);
+ function.ret = safe_str(tps);
+ if (tps) eina_stringshare_del(tps);
if(function.ret == "") function.ret = "void";
function.params = _get_params(eolian_parameters_list_get(eolian_function));
function.comment = detail::eolian_function_comment(eolian_function);
diff --git a/src/lib/ecore/ecore_animator.eo b/src/lib/ecore/ecore_animator.eo
index 98cc07718e..a50600b044 100644
--- a/src/lib/ecore/ecore_animator.eo
+++ b/src/lib/ecore/ecore_animator.eo
@@ -7,14 +7,14 @@ class Ecore_Animator (Eo_Base)
params {
@in double runtime;
@in Ecore_Timeline_Cb func;
- @in const void *data;
+ @in const(void)* data;
}
}
constructor {
/*@ Contructor. */
params {
@in Ecore_Task_Cb func;
- @in const void *data;
+ @in const(void)* data;
}
}
}
diff --git a/src/lib/ecore/ecore_idle_enterer.eo b/src/lib/ecore/ecore_idle_enterer.eo
index f015a19b08..80ea36dc1b 100644
--- a/src/lib/ecore/ecore_idle_enterer.eo
+++ b/src/lib/ecore/ecore_idle_enterer.eo
@@ -6,14 +6,14 @@ class Ecore_Idle_Enterer (Eo_Base)
/*@ Contructor. Will insert the handler at the beginning of the list. */
params {
@in Ecore_Task_Cb func;
- @in const void *data;
+ @in const(void)* data;
}
}
after_constructor {
/*@ Contructor. Will insert the handler at the end of the list. */
params {
@in Ecore_Task_Cb func;
- @in const void *data;
+ @in const(void)* data;
}
}
}
diff --git a/src/lib/ecore/ecore_idle_exiter.eo b/src/lib/ecore/ecore_idle_exiter.eo
index cac3ccb784..b463b7ea14 100644
--- a/src/lib/ecore/ecore_idle_exiter.eo
+++ b/src/lib/ecore/ecore_idle_exiter.eo
@@ -6,7 +6,7 @@ class Ecore_Idle_Exiter (Eo_Base)
/*@ Contructor. */
params {
@in Ecore_Task_Cb func;
- @in const void *data;
+ @in const(void)* data;
}
}
}
diff --git a/src/lib/ecore/ecore_idler.eo b/src/lib/ecore/ecore_idler.eo
index b9a7769ce1..87f85a27d1 100644
--- a/src/lib/ecore/ecore_idler.eo
+++ b/src/lib/ecore/ecore_idler.eo
@@ -6,7 +6,7 @@ class Ecore_Idler (Eo_Base)
/*@ Contructor. */
params {
@in Ecore_Task_Cb func;
- @in const void *data;
+ @in const(void)* data;
}
}
}
diff --git a/src/lib/ecore/ecore_job.eo b/src/lib/ecore/ecore_job.eo
index 85cc169e3b..cf4a120513 100644
--- a/src/lib/ecore/ecore_job.eo
+++ b/src/lib/ecore/ecore_job.eo
@@ -6,7 +6,7 @@ class Ecore_Job (Eo_Base)
/*@ Contructor. */
params {
@in Ecore_Cb func;
- @in const void *data;
+ @in const(void)* data;
}
}
}
diff --git a/src/lib/ecore/ecore_poll.eo b/src/lib/ecore/ecore_poll.eo
index 577f91072b..003a0c0bea 100644
--- a/src/lib/ecore/ecore_poll.eo
+++ b/src/lib/ecore/ecore_poll.eo
@@ -8,7 +8,7 @@ class Ecore_Poller (Eo_Base)
@in Ecore_Poller_Type type;
@in int interval;
@in Ecore_Task_Cb func;
- @in const void *data;
+ @in const(void)* data;
}
}
}
diff --git a/src/lib/ecore/ecore_timer.eo b/src/lib/ecore/ecore_timer.eo
index 31039dc41e..f55880aeb1 100644
--- a/src/lib/ecore/ecore_timer.eo
+++ b/src/lib/ecore/ecore_timer.eo
@@ -14,7 +14,7 @@ class Ecore_Timer (Eo_Base)
params {
@in double in; /*@ The time, in seconds, from now when to go off */
@in Ecore_Task_Cb func; /*@ The callback function to call when the timer goes off */
- @in const void *data; /*@ A pointer to pass to the callback function as its data pointer */
+ @in const(void)* data; /*@ A pointer to pass to the callback function as its data pointer */
}
}
constructor {
@@ -22,7 +22,7 @@ class Ecore_Timer (Eo_Base)
params {
@in double in; /*@ The time, in seconds, from when the main loop woke up, to go off */
@in Ecore_Task_Cb func; /*@ The callback function to call when the timer goes off */
- @in const void *data; /*@ A pointer to pass to the callback function as its data pointer */
+ @in const(void)* data; /*@ A pointer to pass to the callback function as its data pointer */
}
}
}
diff --git a/src/lib/ecore_audio/ecore_audio.eo b/src/lib/ecore_audio/ecore_audio.eo
index 6480a270f5..3c00e9f0e9 100644
--- a/src/lib/ecore_audio/ecore_audio.eo
+++ b/src/lib/ecore_audio/ecore_audio.eo
@@ -18,7 +18,7 @@ class Ecore_Audio (Eo_Base)
@since 1.8 */
}
values {
- const char *name;
+ const(char)* name;
}
}
paused {
@@ -73,7 +73,7 @@ class Ecore_Audio (Eo_Base)
@since 1.8 */
}
values {
- const char *source; /*The source to set to (i.e. file, URL, device)*/
+ const(char)* source; /*The source to set to (i.e. file, URL, device)*/
}
}
format {
diff --git a/src/lib/edje/edje.eo b/src/lib/edje/edje.eo
index efa56ba94b..b45b683cad 100644
--- a/src/lib/edje/edje.eo
+++ b/src/lib/edje/edje.eo
@@ -180,8 +180,8 @@ class Edje (Evas_Smart_Clipped)
interested in: they'll be ignored by the function. */
}
values {
- const char *file; /*@ The path to the EDJ file to load @p from */
- const char *group; /*@ The name of the group, in @p file, which implements an
+ const(char)* file; /*@ The path to the EDJ file to load @p from */
+ const(char)* group; /*@ The name of the group, in @p file, which implements an
Edje object */
}
}
@@ -251,8 +251,8 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
}
values {
- const Eina_File *file; /*@ The Eina_File pointing to the EDJ file to load @p from */
- const char *group; /*@ The name of the group, in @p file, which implements an
+ const(Eina_File)* file; /*@ The Eina_File pointing to the EDJ file to load @p from */
+ const(char)* group; /*@ The name of the group, in @p file, which implements an
Edje object */
}
}
@@ -275,7 +275,7 @@ class Edje (Evas_Smart_Clipped)
@see evas_textblock_cursor_paragraph_first */
}
values {
- const char *part; /*@ The part name */
+ const(char)* part; /*@ The part name */
Edje_Cursor cur; /*@ the edje cursor to work on */
}
}
@@ -286,7 +286,7 @@ class Edje (Evas_Smart_Clipped)
@see evas_textblock_cursor_line_char_last */
}
values {
- const char *part; /*@ The part name */
+ const(char)* part; /*@ The part name */
Edje_Cursor cur; /*@ the edje cursor to work on */
}
}
@@ -301,8 +301,8 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
}
values {
- const char *text_class; /*@ The text class name */
- const char *font; /*@ Font name */
+ const(char)* text_class; /*@ The text class name */
+ const(char)* font; /*@ Font name */
Evas_Font_Size size; /*@ Font Size */
}
}
@@ -317,7 +317,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
}
values {
- const char *part; /*@ The part containing the object. */
+ const(char)* part; /*@ The part containing the object. */
Edje_Cursor cur; /*@ The cursor to adjust. */
Evas_Coord x; /*@ X Coordinate. */
Evas_Coord y; /*@ Y Coordinate. */
@@ -330,7 +330,7 @@ class Edje (Evas_Smart_Clipped)
@see evas_textblock_cursor_paragraph_last */
}
values {
- const char *part; /*@ The part name */
+ const(char)* part; /*@ The part name */
Edje_Cursor cur; /*@ the edje cursor to work on */
}
}
@@ -349,8 +349,8 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
}
values {
- const char *part; /*@ The part name */
- const char *text; /*@ The text string */
+ const(char)* part; /*@ The part name */
+ const(char)* text; /*@ The text string */
}
}
item_provider {
@@ -373,7 +373,7 @@ class Edje (Evas_Smart_Clipped)
@see evas_textblock_cursor_line_char_first */
}
values {
- const char *part; /*@ The part name */
+ const(char)* part; /*@ The part name */
Edje_Cursor cur; /*@ the edje cursor to work on */
}
}
@@ -523,7 +523,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Eina_Bool clear; /*@ If set, will delete subobjs on remove */
}
}
@@ -537,8 +537,8 @@ class Edje (Evas_Smart_Clipped)
const;
return Edje_External_Param_Type;
params {
- @in const char *part; /*@ The part name */
- @out const char param; /*@ the parameter name to use. */
+ @in const(char)* part; /*@ The part name */
+ @out const(char) param; /*@ the parameter name to use. */
}
}
part_text_select_allow_set {
@@ -552,7 +552,7 @@ class Edje (Evas_Smart_Clipped)
const;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Eina_Bool allow; /*@ EINA_TRUE to enable, EINA_FALSE otherwise */
}
}
@@ -565,9 +565,9 @@ class Edje (Evas_Smart_Clipped)
"" for other states */
const;
- return const char *;
+ return const(char)*;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@out double val_ret;
}
}
@@ -587,7 +587,7 @@ class Edje (Evas_Smart_Clipped)
return void *;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Markup_Filter_Cb func; /*@ The function callback to remove */
@in void *data; /*@ The data passed to the callback function */
}
@@ -606,7 +606,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in double dx; /*@ The x step amount */
@in double dy; /*@ The y step amount */
}
@@ -623,7 +623,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Eina_Bool;
params {
- @in const char *part; /*@ The part */
+ @in const(char)* part; /*@ The part */
@out double dx; /*@ The x step increment pointer */
@out double dy; /*@ The y step increment pointer */
}
@@ -641,7 +641,7 @@ class Edje (Evas_Smart_Clipped)
const;
return void *;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_text_select_begin {
@@ -650,7 +650,7 @@ class Edje (Evas_Smart_Clipped)
const;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_text_style_user_peek {
@@ -664,9 +664,9 @@ class Edje (Evas_Smart_Clipped)
@since 1.2.0 */
const;
- return const char *;
+ return const(char)*;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
signal_callback_del {
@@ -687,8 +687,8 @@ class Edje (Evas_Smart_Clipped)
legacy null;
return void *;
params {
- @in const char *emission; /*@ The emission string. */
- @in const char *source; /*@ The source string. */
+ @in const(char)* emission; /*@ The emission string. */
+ @in const(char)* source; /*@ The source string. */
@in Edje_Signal_Cb func; /*@ The callback function. */
@in void *data; /*@ The callback function. */
}
@@ -700,7 +700,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Cursor cur; /*@ The edje cursor to advance */
}
}
@@ -713,8 +713,8 @@ class Edje (Evas_Smart_Clipped)
@since 1.2.0 */
params {
- @in const char *part; /*@ The part name */
- @in const char *style; /*@ The style to set (textblock conventions). */
+ @in const(char)* part; /*@ The part name */
+ @in const(char)* style; /*@ The style to set (textblock conventions). */
}
}
part_text_append {
@@ -727,8 +727,8 @@ class Edje (Evas_Smart_Clipped)
@since 1.1 */
params {
- @in const char *part; /*@ The part name */
- @in const char *text; /*@ The text string */
+ @in const(char)* part; /*@ The part name */
+ @in const(char)* text; /*@ The text string */
}
}
part_geometry_get {
@@ -749,7 +749,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Eina_Bool;
params {
- @in const char *part; /*@ The Edje part's name */
+ @in const(char)* part; /*@ The Edje part's name */
@out Evas_Coord x; /*@ A pointer to a variable where to store the part's x
coordinate */
@out Evas_Coord y; /*@ A pointer to a variable where to store the part's y
@@ -770,7 +770,7 @@ class Edje (Evas_Smart_Clipped)
const;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_text_item_geometry_get {
@@ -785,8 +785,8 @@ class Edje (Evas_Smart_Clipped)
const;
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
- @in const char *item; /*@ The item name */
+ @in const(char)* part; /*@ The part name */
+ @in const(char)* item; /*@ The item name */
@out Evas_Coord cx; /*@ Item x return (relative to entry part) */
@out Evas_Coord cy; /*@ Item y return (relative to entry part) */
@out Evas_Coord cw; /*@ Item width return */
@@ -803,7 +803,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Evas_Object *child_obj; /*@ The object to pack in */
}
}
@@ -813,7 +813,7 @@ class Edje (Evas_Smart_Clipped)
const;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
text_insert_filter_callback_del_full {
@@ -831,7 +831,7 @@ class Edje (Evas_Smart_Clipped)
return void *;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Text_Filter_Cb func; /*@ The function callback to remove */
@in void *data; /*@ The data passed to the callback function */
}
@@ -843,7 +843,7 @@ class Edje (Evas_Smart_Clipped)
@since 1.2.0 */
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_text_input_panel_imdata_set {
@@ -857,8 +857,8 @@ class Edje (Evas_Smart_Clipped)
@since 1.2.0 */
params {
- @in const char *part; /*@ The part name */
- @in const void *data; /*@ The specific data to be set to the input panel. */
+ @in const(char)* part; /*@ The part name */
+ @in const(void)* data; /*@ The specific data to be set to the input panel. */
@in int len; /*@ the length of data, in bytes, to send to the input panel */
}
}
@@ -870,7 +870,7 @@ class Edje (Evas_Smart_Clipped)
const;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in void *data; /*@ The specific data to be got from the input panel */
@in int *len; /*@ The length of data */
}
@@ -883,8 +883,8 @@ class Edje (Evas_Smart_Clipped)
cursor position. */
params {
- @in const char *part; /*@ The part name */
- @in const char *text; /*@ The text string */
+ @in const(char)* part; /*@ The part name */
+ @in const(char)* text; /*@ The text string */
}
}
part_box_remove_at {
@@ -901,8 +901,8 @@ class Edje (Evas_Smart_Clipped)
return Evas_Object *;
params {
- @in const char *part; /*@ The part name */
- @in unsigned int pos; /*@ The position index of the object (starts counting from 0) */
+ @in const(char)* part; /*@ The part name */
+ @in uint pos; /*@ The position index of the object (starts counting from 0) */
}
}
part_text_cursor_copy {
@@ -910,7 +910,7 @@ class Edje (Evas_Smart_Clipped)
@brief Copy the cursor to another cursor. */
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Cursor src; /*@ the cursor to copy from */
@in Edje_Cursor dst; /*@ the cursor to copy to */
}
@@ -965,7 +965,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in double dx; /*@ The x value */
@in double dy; /*@ The y value */
}
@@ -984,7 +984,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@out double dx; /*@ The X value pointer */
@out double dy; /*@ The Y value pointer */
}
@@ -1004,7 +1004,7 @@ class Edje (Evas_Smart_Clipped)
@since 1.1.0 */
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Cursor cur; /*@ The cursor to move */
@in int pos; /*@ the position of the cursor */
}
@@ -1019,7 +1019,7 @@ class Edje (Evas_Smart_Clipped)
const;
return int;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Cursor cur; /*@ The cursor to get the position */
}
}
@@ -1048,7 +1048,7 @@ class Edje (Evas_Smart_Clipped)
const;
return char *;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Cursor cur; /*@ The cursor to use */
}
}
@@ -1064,7 +1064,7 @@ class Edje (Evas_Smart_Clipped)
@since 1.1 */
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Input_Panel_Layout layout; /*@ layout type */
}
}
@@ -1080,7 +1080,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Edje_Input_Panel_Layout;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_table_pack {
@@ -1093,12 +1093,12 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Evas_Object *child_obj; /*@ The object to pack in */
- @in unsigned short col; /*@ The column to place it in */
- @in unsigned short row; /*@ The row to place it in */
- @in unsigned short colspan; /*@ Columns the child will take */
- @in unsigned short rowspan; /*@ Rows the child will take */
+ @in ushort col; /*@ The column to place it in */
+ @in ushort row; /*@ The row to place it in */
+ @in ushort colspan; /*@ Columns the child will take */
+ @in ushort rowspan; /*@ Rows the child will take */
}
}
part_text_input_panel_language_set {
@@ -1110,7 +1110,7 @@ class Edje (Evas_Smart_Clipped)
@since 1.2.0 */
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Input_Panel_Lang lang; /*@ the language to be set to the input panel. */
}
}
@@ -1126,7 +1126,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Edje_Input_Panel_Lang;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_table_col_row_size_get {
@@ -1140,7 +1140,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@out int cols; /*@ Pointer where to store number of columns (can be NULL) */
@out int rows; /*@ Pointer where to store number of rows (can be NULL) */
}
@@ -1166,7 +1166,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Evas_Object *;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_external_content_get {
@@ -1179,8 +1179,8 @@ class Edje (Evas_Smart_Clipped)
const;
return Evas_Object *;
params {
- @in const char *part; /*@ The name of the part holding the EXTERNAL */
- @out const char content; /*@ A string identifying which content from the EXTERNAL to get */
+ @in const(char)* part; /*@ The name of the part holding the EXTERNAL */
+ @out const(char) content; /*@ A string identifying which content from the EXTERNAL to get */
}
}
preload {
@@ -1211,7 +1211,7 @@ class Edje (Evas_Smart_Clipped)
@since 1.1.0 */
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Eina_Bool enabled; /*@ If true, the input panel is appeared when entry is clicked or has a focus */
}
}
@@ -1226,7 +1226,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_text_select_extend {
@@ -1235,7 +1235,7 @@ class Edje (Evas_Smart_Clipped)
const;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_box_insert_at {
@@ -1254,9 +1254,9 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Evas_Object *child; /*@ The object to insert */
- @in unsigned int pos; /*@ The position where to insert child */
+ @in uint pos; /*@ The position where to insert child */
}
}
part_text_anchor_geometry_get {
@@ -1270,10 +1270,10 @@ class Edje (Evas_Smart_Clipped)
rectangles. */
const;
- return const Eina_List *;
+ return const(Eina_List)*;
params {
- @in const char *part; /*@ The part name */
- @in const char *anchor; /*@ The anchor name */
+ @in const(char)* part; /*@ The part name */
+ @in const(char)* anchor; /*@ The anchor name */
}
}
part_text_cursor_down {
@@ -1282,7 +1282,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Cursor cur; /*@ the edje cursor to work on */
}
}
@@ -1300,7 +1300,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in double dx; /*@ The x page step increment */
@in double dy; /*@ The y page step increment */
}
@@ -1316,7 +1316,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@out double dx; /*@ The dx page increment pointer */
@out double dy; /*@ The dy page increment pointer */
}
@@ -1336,7 +1336,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Evas_Object *child; /*@ The object to prepend */
}
}
@@ -1366,8 +1366,8 @@ class Edje (Evas_Smart_Clipped)
@see edje_object_signal_callback_add() for more on Edje signals. */
params {
- @in const char *emission; /*@ The signal's "emission" string */
- @in const char *source; /*@ The signal's "source" string */
+ @in const(char)* emission; /*@ The signal's "emission" string */
+ @in const(char)* source; /*@ The signal's "source" string */
}
}
part_text_input_panel_layout_variation_set {
@@ -1382,7 +1382,7 @@ class Edje (Evas_Smart_Clipped)
@since 1.8 */
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in int variation; /*@ layout variation type */
}
}
@@ -1398,7 +1398,7 @@ class Edje (Evas_Smart_Clipped)
const;
return int;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
message_send {
@@ -1433,7 +1433,7 @@ class Edje (Evas_Smart_Clipped)
const;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_object_get {
@@ -1455,9 +1455,9 @@ class Edje (Evas_Smart_Clipped)
example), though. */
const;
- return const Evas_Object *;
+ return const(Evas_Object)*;
params {
- @in const char *part; /*@ The Edje part's name */
+ @in const(char)* part; /*@ The Edje part's name */
}
}
part_drag_size_set {
@@ -1473,7 +1473,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in double dw; /*@ The drag width */
@in double dh; /*@ The drag height */
}
@@ -1489,7 +1489,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@out double dw; /*@ The drag width pointer */
@out double dh; /*@ The drag height pointer */
}
@@ -1508,7 +1508,7 @@ class Edje (Evas_Smart_Clipped)
return void *;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Text_Filter_Cb func; /*@ The function callback to remove */
}
}
@@ -1528,7 +1528,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Edje_Drag_Dir;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_text_unescaped_set {
@@ -1542,8 +1542,8 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
- @in const char *text_to_escape; /*@ The text string */
+ @in const(char)* part; /*@ The part name */
+ @in const(char)* text_to_escape; /*@ The text string */
}
}
part_text_unescaped_get {
@@ -1563,7 +1563,7 @@ class Edje (Evas_Smart_Clipped)
const;
return char *;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
signal_callback_add {
@@ -1621,8 +1621,8 @@ class Edje (Evas_Smart_Clipped)
@see edje_object_signal_callback_del_full() */
params {
- @in const char *emission; /*@ The signal's "emission" string */
- @in const char *source; /*@ The signal's "source" string */
+ @in const(char)* emission; /*@ The signal's "emission" string */
+ @in const(char)* source; /*@ The signal's "source" string */
@in Edje_Signal_Cb func; /*@ The callback function to be executed when the signal is
emitted. */
@in void *data; /*@ A pointer to data to pass in to @p func. */
@@ -1636,7 +1636,7 @@ class Edje (Evas_Smart_Clipped)
const;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_text_input_panel_return_key_disabled_set {
@@ -1646,7 +1646,7 @@ class Edje (Evas_Smart_Clipped)
@since 1.2.0 */
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Eina_Bool disabled; /*@ The state */
}
}
@@ -1660,7 +1660,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_text_autocapital_type_set {
@@ -1670,7 +1670,7 @@ class Edje (Evas_Smart_Clipped)
@since 1.1.0 */
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Text_Autocapital_Type autocapital_type; /*@ The type of autocapitalization */
}
}
@@ -1684,7 +1684,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Edje_Text_Autocapital_Type;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_unswallow {
@@ -1708,7 +1708,7 @@ class Edje (Evas_Smart_Clipped)
@since 1.2.0 */
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Eina_Bool prediction; /*@ If true, the prediction feature is allowed. */
}
}
@@ -1722,7 +1722,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
data_get {
@@ -1761,9 +1761,9 @@ class Edje (Evas_Smart_Clipped)
@see edje_object_file_set() */
const;
- return const char *;
+ return const(char)*;
params {
- @in const char *key; /*@ The data field's key string */
+ @in const(char)* key; /*@ The data field's key string */
}
}
text_markup_filter_callback_add {
@@ -1795,7 +1795,7 @@ class Edje (Evas_Smart_Clipped)
@since 1.2.0 */
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Markup_Filter_Cb func; /*@ The callback function that will act as markup filter */
@in void *data; /*@ User provided data to pass to the filter function */
}
@@ -1822,7 +1822,7 @@ class Edje (Evas_Smart_Clipped)
return Evas_Object *;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Evas_Object *child; /*@ The object to remove */
}
}
@@ -1850,7 +1850,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Evas_Object *;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_text_imf_context_reset {
@@ -1863,7 +1863,7 @@ class Edje (Evas_Smart_Clipped)
const;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_text_input_panel_return_key_type_set {
@@ -1875,7 +1875,7 @@ class Edje (Evas_Smart_Clipped)
@since 1.2.0 */
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Input_Panel_Return_Key_Type return_key_type; /*@ The type of "return" key on the input panel */
}
}
@@ -1891,7 +1891,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Edje_Input_Panel_Return_Key_Type;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_table_child_get {
@@ -1903,9 +1903,9 @@ class Edje (Evas_Smart_Clipped)
const;
return Evas_Object *;
params {
- @in const char *part; /*@ The part name */
- @in unsigned int col; /*@ The column of the child to get */
- @in unsigned int row; /*@ The row of the child to get */
+ @in const(char)* part; /*@ The part name */
+ @in uint col; /*@ The column of the child to get */
+ @in uint row; /*@ The row of the child to get */
}
}
part_box_insert_before {
@@ -1924,9 +1924,9 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Evas_Object *child; /*@ The object to insert */
- @in const Evas_Object *reference; /*@ The object to be used as reference */
+ @in const(Evas_Object)* reference; /*@ The object to be used as reference */
}
}
part_external_param_set {
@@ -1953,8 +1953,8 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
- @in const Edje_External_Param *param; /*@ the parameter details, including its name, type and
+ @in const(char)* part; /*@ The part name */
+ @in const(Edje_External_Param)* param; /*@ the parameter details, including its name, type and
actual value. This pointer should be valid, and the
parameter must exist in
#Edje_External_Type.parameters_info, with the exact type,
@@ -1984,7 +1984,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@out Edje_External_Param param; /*@ the parameter details. It is used as both input and
output variable. This pointer should be valid, and the
parameter must exist in
@@ -2023,7 +2023,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Evas_Object *child; /*@ The object to append */
}
}
@@ -2071,7 +2071,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Eina_Bool clear; /*@ Delete objects on removal */
}
}
@@ -2090,7 +2090,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in double dx; /*@ The x step */
@in double dy; /*@ The y step */
}
@@ -2103,8 +2103,8 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
- @in const char *text; /*@ The text string */
+ @in const(char)* part; /*@ The part name */
+ @in const(char)* text; /*@ The text string */
}
}
part_text_get {
@@ -2118,9 +2118,9 @@ class Edje (Evas_Smart_Clipped)
@see edje_object_part_text_set(). */
const;
- return const char *;
+ return const(char)*;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_text_input_panel_show_on_demand_set {
@@ -2131,7 +2131,7 @@ class Edje (Evas_Smart_Clipped)
@since 1.9.0 */
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Eina_Bool ondemand; /*@ If true, the input panel will be shown in case of only Mouse up event. (Focus event will be ignored.) */
}
}
@@ -2145,7 +2145,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_text_selection_get {
@@ -2160,9 +2160,9 @@ class Edje (Evas_Smart_Clipped)
@see edje_object_part_text_select_none() */
const;
- return const char *;
+ return const(char)*;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_text_cursor_is_format_get {
@@ -2175,7 +2175,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Cursor cur; /*@ The cursor to adjust. */
}
}
@@ -2200,7 +2200,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *color_class;
+ @in const(char)* color_class;
@in int r; /*@ Object Red value */
@in int g; /*@ Object Green value */
@in int b; /*@ Object Blue value */
@@ -2236,7 +2236,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Eina_Bool;
params {
- @in const char *color_class;
+ @in const(char)* color_class;
@out int r; /*@ Object Red value */
@out int g; /*@ Object Green value */
@out int b; /*@ Object Blue value */
@@ -2264,7 +2264,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in double dx; /*@ The x step */
@in double dy; /*@ The y step */
}
@@ -2275,7 +2275,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Cursor cur; /*@ the edje cursor to work on */
}
}
@@ -2286,7 +2286,7 @@ class Edje (Evas_Smart_Clipped)
const;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@out Evas_Coord x; /*@ Cursor X position */
@out Evas_Coord y; /*@ Cursor Y position */
@out Evas_Coord w; /*@ Cursor width */
@@ -2302,9 +2302,9 @@ class Edje (Evas_Smart_Clipped)
This function returns a list of char anchor names. */
const;
- return const Eina_List *;
+ return const(Eina_List)*;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
text_insert_filter_callback_add {
@@ -2340,7 +2340,7 @@ class Edje (Evas_Smart_Clipped)
@see edje_object_text_markup_filter_callback_add */
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Text_Filter_Cb func; /*@ The callback function that will act as filter */
@in void *data; /*@ User provided data to pass to the filter function */
}
@@ -2356,7 +2356,7 @@ class Edje (Evas_Smart_Clipped)
const;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_exists {
@@ -2376,7 +2376,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Eina_Bool;
params {
- @in const char *part; /*@ The part's name to check for existence in @p obj's
+ @in const(char)* part; /*@ The part's name to check for existence in @p obj's
group */
}
}
@@ -2395,7 +2395,7 @@ class Edje (Evas_Smart_Clipped)
return void *;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Markup_Filter_Cb func; /*@ The function callback to remove */
}
}
@@ -2408,7 +2408,7 @@ class Edje (Evas_Smart_Clipped)
const;
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Cursor cur; /*@ The cursor to adjust. */
}
}
@@ -2423,8 +2423,8 @@ class Edje (Evas_Smart_Clipped)
const;
params {
- @in const char *part; /*@ The part name */
- @in const char *text; /*@ The text string */
+ @in const(char)* part; /*@ The part name */
+ @in const(char)* text; /*@ The text string */
}
}
part_text_cursor_prev {
@@ -2434,7 +2434,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
@in Edje_Cursor cur; /*@ the edje cursor to work on */
}
}
@@ -2447,9 +2447,9 @@ class Edje (Evas_Smart_Clipped)
This function returns a list of char item names. */
const;
- return const Eina_List *;
+ return const(Eina_List)*;
params {
- @in const char *part; /*@ The part name */
+ @in const(char)* part; /*@ The part name */
}
}
part_swallow {
@@ -2487,7 +2487,7 @@ class Edje (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in const char *part; /*@ The swallow part's name */
+ @in const(char)* part; /*@ The swallow part's name */
@in Evas_Object *obj_swallow; /*@ The object to occupy that part */
}
}
diff --git a/src/lib/eo/eo_base.eo b/src/lib/eo/eo_base.eo
index 88b7e538a4..a7849a1789 100644
--- a/src/lib/eo/eo_base.eo
+++ b/src/lib/eo/eo_base.eo
@@ -45,7 +45,7 @@ Return event freeze count. */
event_callback_forwarder_del {
/*@ Remove an event callback forwarder for an event and an object. */
params {
- @in const Eo_Event_Description* desc; /*@ The description of the event to listen to */
+ @in const(Eo_Event_Description)* desc; /*@ The description of the event to listen to */
@in Eo* new_obj; /*@ The object to emit events from */
}
}
@@ -64,8 +64,8 @@ Prevents event callbacks from being called for the object. */
event_callback_array_del {
/*@ Del a callback array with a specific data associated to it for an event. */
params {
- @in const Eo_Callback_Array_Item* array; /*@ an #Eo_Callback_Array_Item of events to listen to */
- @in const void* user_data; /*@ The data to compare */
+ @in const(Eo_Callback_Array_Item)* array; /*@ an #Eo_Callback_Array_Item of events to listen to */
+ @in const(void)* user_data; /*@ The data to compare */
}
}
wref_del {
@@ -85,24 +85,24 @@ Should not be used with #eo_do. Only use it with #eo_do_super. */
key_data_set {
/*@ Set generic data to object. */
params {
- @in const char* key; /*@ the key associated with the data */
- @in const void* data; /*@ the data to set */
+ @in const(char)* key; /*@ the key associated with the data */
+ @in const(void)* data; /*@ the data to set */
@in eo_key_data_free_func free_func; /*@ the func to free data with (NULL means */
}
}
key_data_get {
/*@ Get generic data from object. */
params {
- @in const char* key; /*@ the key associated with the data */
+ @in const(char)* key; /*@ the key associated with the data */
}
return void *; /* the data for the key */
}
event_callback_del {
/*@ Del a callback with a specific data associated to it for an event. */
params {
- @in const Eo_Event_Description* desc; /*@ The description of the event to listen to */
+ @in const(Eo_Event_Description)* desc; /*@ The description of the event to listen to */
@in Eo_Event_Cb func; /*@ the callback to delete */
- @in const void* user_data; /*@ The data to compare */
+ @in const(void)* user_data; /*@ The data to compare */
}
}
event_global_thaw {
@@ -112,16 +112,16 @@ Lets event callbacks be called for the object. */
key_data_del {
/*@ Del generic data from object. */
params {
- @in const char* key; /*@ the key associated with the data */
+ @in const(char)* key; /*@ the key associated with the data */
}
}
event_callback_array_priority_add {
/*@ Add a callback array for an event with a specific priority.
callbacks of the same priority are called in reverse order of creation. */
params {
- @in const Eo_Callback_Array_Item* array; /*@ an #Eo_Callback_Array_Item of events to listen to */
+ @in const(Eo_Callback_Array_Item)* array; /*@ an #Eo_Callback_Array_Item of events to listen to */
@in Eo_Callback_Priority priority; /*@ The priority of the callback */
- @in const void* data; /*@ additional data to pass to the callback */
+ @in const(void)* data; /*@ additional data to pass to the callback */
}
}
wref_add {
@@ -140,14 +140,14 @@ This function registers the object handle pointed by wref to obj so when obj is
event_callback_forwarder_add {
/*@ Add an event callback forwarder for an event and an object. */
params {
- @in const Eo_Event_Description* desc; /*@ The description of the event to listen to */
+ @in const(Eo_Event_Description)* desc; /*@ The description of the event to listen to */
@in Eo* new_obj; /*@ The object to emit events from */
}
}
event_callback_call {
/*@ Call the callbacks for an event of an object. */
params {
- @in const Eo_Event_Description *desc; /*@ The description of the event to call */
+ @in const(Eo_Event_Description)* desc; /*@ The description of the event to call */
@in void *event_info; /*@ Extra event info to pass to the callbacks */
}
return Eina_Bool; /* @c EINA_TRUE if one of the callbacks aborted the call, @c EINA_FALSE otherwise */
@@ -156,10 +156,10 @@ This function registers the object handle pointed by wref to obj so when obj is
/*@ Add a callback for an event with a specific priority.
callbacks of the same priority are called in reverse order of creation. */
params {
- @in const Eo_Event_Description* desc; /*@ The description of the event to listen to */
+ @in const(Eo_Event_Description)* desc; /*@ The description of the event to listen to */
@in Eo_Callback_Priority priority; /*@ The priority of the callback */
@in Eo_Event_Cb cb; /*@ the callback to call */
- @in const void* data; /*@ additional data to pass to the callback */
+ @in const(void)* data; /*@ additional data to pass to the callback */
}
}
children_iterator_new {
diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h
index c5cd27b268..ed07ce5fbb 100644
--- a/src/lib/eolian/Eolian.h
+++ b/src/lib/eolian/Eolian.h
@@ -54,7 +54,7 @@ typedef struct _Function_Id* Eolian_Function;
*
* @ingroup Eolian
*/
-typedef Eina_Inlist* Eolian_Type;
+typedef struct _Parameter_Type* Eolian_Type;
/* Class function parameter information
*
@@ -113,6 +113,14 @@ typedef enum
EOLIAN_SCOPE_PROTECTED
} Eolian_Function_Scope;
+typedef enum
+{
+ EOLIAN_TYPE_UNKNOWN_TYPE,
+ EOLIAN_TYPE_REGULAR,
+ EOLIAN_TYPE_POINTER,
+ EOLIAN_TYPE_FUNCTION
+} Eolian_Type_Type;
+
/*
* @brief Parse a given .eo file and fill the database.
*
@@ -490,23 +498,7 @@ EAPI const Eina_List *eolian_parameters_list_get(Eolian_Function function_id);
*
* @ingroup Eolian
*/
-EAPI void eolian_parameter_information_get(const Eolian_Function_Parameter param_desc, Eolian_Parameter_Dir *param_dir, const char **type, const char **name, const char **description);
-
-/*
- * @brief Get information on given type.
- *
- * An Eolian type is an inlist of basic C types. For example:
- * Eina_List * <Eo *> contains two basic types.
- * The first Eolian type of the list stores Eina_List *, the next one Eo *.
- *
- * @param[in] etype Eolian type
- * @param[out] type C type
- * @param[out] own indicates if the ownership has to pass to the caller/callee.
- * @return the next type of the list.
- *
- * @ingroup Eolian
- */
-EAPI Eolian_Type eolian_type_information_get(Eolian_Type etype, const char **type, Eina_Bool *own);
+EAPI void eolian_parameter_information_get(const Eolian_Function_Parameter param_desc, Eolian_Parameter_Dir *param_dir, Eolian_Type *type, const char **name, const char **description);
/*
* @brief Get type of a parameter
@@ -516,17 +508,7 @@ EAPI Eolian_Type eolian_type_information_get(Eolian_Type etype, const char **typ
*
* @ingroup Eolian
*/
-EAPI Eina_Stringshare *eolian_parameter_type_get(const Eolian_Function_Parameter param);
-
-/*
- * @brief Get a list of all the types of a parameter
- *
- * @param[in] param_desc parameter handle
- * @return the types of the parameter
- *
- * @ingroup Eolian
- */
-EAPI Eolian_Type eolian_parameter_types_list_get(const Eolian_Function_Parameter param);
+EAPI Eolian_Type eolian_parameter_type_get(const Eolian_Function_Parameter param);
/*
* @brief Get name of a parameter
@@ -574,19 +556,7 @@ EAPI Eina_Bool eolian_parameter_is_nonull(Eolian_Function_Parameter param_desc);
*
* @ingroup Eolian
*/
-EAPI const char *eolian_function_return_type_get(Eolian_Function function_id, Eolian_Function_Type ftype);
-
-/*
- * @brief Get a list of all the types of a function return
- *
- * @param[in] foo_id Function Id
- * @param[in] ftype Function Type
- * @return the types of the function return
- *
- * @ingroup Eolian
- */
-EAPI Eolian_Type
-eolian_function_return_types_list_get(Eolian_Function foo_id, Eolian_Function_Type ftype);
+EAPI Eolian_Type eolian_function_return_type_get(Eolian_Function function_id, Eolian_Function_Type ftype);
/*
* @brief Get the return default value of a function.
@@ -729,8 +699,129 @@ EAPI Eina_Bool eolian_class_dtor_enable_get(const Eolian_Class klass);
*
* @ingroup Eolian
*/
-EAPI Eolian_Type
-eolian_type_find_by_alias(const char *alias);
+EAPI Eolian_Type eolian_type_find_by_alias(const char *alias);
+
+/*
+ * @brief Get the type of a type (regular, function, pointer)
+ *
+ * @param[in] tp the type.
+ * @return EOLIAN_TYPE_UNKNOWN_TYPE when @c tp is NULL, otherwise
+ * EOLIAN_TYPE_REGULAR, EOLIAN_TYPE_POINTER or EOLIAN_TYPE_FUNCTION.
+ *
+ * @ingroup Eolian
+ */
+EAPI Eolian_Type_Type eolian_type_type_get(Eolian_Type tp);
+
+/*
+ * @brief Get an iterator to all arguments of a function type.
+ *
+ * @param[in] tp the type.
+ * @return the iterator when @c tp is an EOLIAN_TYPE_FUNCTION, NULL otherwise.
+ *
+ * @ingroup Eolian
+ */
+EAPI Eina_Iterator *eolian_type_arguments_list_get(Eolian_Type tp);
+
+/*
+ * @brief Get an iterator to all subtypes of a type.
+ *
+ * @param[in] tp the type.
+ * @return the iterator when @c tp is an EOLIAN_TYPE_REGULAR or
+ * EOLIAN_TYPE_POINTER and has subtypes, NULL otherwise.
+ *
+ * @ingroup Eolian
+ */
+EAPI Eina_Iterator *eolian_type_subtypes_list_get(Eolian_Type tp);
+
+/*
+ * @brief Get the return type of a function type.
+ *
+ * @param[in] tp the type.
+ * @return the return type when @c tp is an EOLIAN_TYPE_FUNCTION, NULL otherwise.
+ *
+ * @ingroup Eolian
+ */
+EAPI Eolian_Type eolian_type_return_type_get(Eolian_Type tp);
+
+/*
+ * @brief Get the base type of a function type.
+ *
+ * @param[in] tp the type.
+ * @return the base type when @c tp is an EOLIAN_TYPE_POINTER, NULL otherwise.
+ *
+ * @ingroup Eolian
+ */
+EAPI Eolian_Type eolian_type_base_type_get(Eolian_Type tp);
+
+/*
+ * @brief Get whether the given type is @own.
+ *
+ * @param[in] tp the type.
+ * @return EINA_TRUE when @c tp is a non-function type and not NULL,
+ * EINA_FALSE otherwise.
+ *
+ * @ingroup Eolian
+ */
+EAPI Eina_Bool eolian_type_is_own(Eolian_Type tp);
+
+/*
+ * @brief Get whether the given type is const.
+ *
+ * @param[in] tp the type.
+ * @return EINA_TRUE when @c tp is a non-function type and not NULL,
+ * EINA_FALSE otherwise.
+ *
+ * @ingroup Eolian
+ */
+EAPI Eina_Bool eolian_type_is_const(Eolian_Type tp);
+
+/*
+ * @brief Get the full C type name of the given type with a name.
+ *
+ * @param[in] tp the type.
+ * @param[in] name the name.
+ * @return The C type name assuming @c tp is not NULL.
+ *
+ * Providing the name is useful for function types, as in C a function
+ * pointer type alone is not valid syntax. For non-function types, the
+ * name is simply appended to the type (with a space). C type names do
+ * not include subtypes as C doesn't support them.
+ *
+ * Keep in mind that if @c name is NULL, the name won't be included.
+ *
+ * @see eolian_type_c_type_get
+ *
+ * @ingroup Eolian
+ */
+EAPI Eina_Stringshare *eolian_type_c_type_named_get(Eolian_Type tp, const char *name);
+
+/*
+ * @brief Get the full C type name of the given type without a name.
+ *
+ * @param[in] tp the type.
+ * @return The C type name assuming @c tp is not NULL.
+ *
+ * This behaves exactly like eolian_type_c_type_named_get when name is NULL.
+ * Keep in mind that this is not useful for function types as a function
+ * pointer type in C cannot be used without a name.
+ *
+ * @see eolian_type_c_type_named_get
+ *
+ * @ingroup Eolian
+ */
+EAPI Eina_Stringshare *eolian_type_c_type_get(Eolian_Type tp);
+
+/*
+ * @brief Get the type name of the given type. You have to manually delete
+ * the stringshare.
+ *
+ * @param[in] tp the type.
+ * @return the name assuming @c tp is an EOLIAN_TYPE_REGULAR, NULL otherwise.
+ * The name may include a "struct" keyword.
+ *
+ * @ingroup Eolian
+ */
+EAPI Eina_Stringshare *eolian_type_name_get(Eolian_Type tp);
#endif
diff --git a/src/lib/eolian/eo_definitions.c b/src/lib/eolian/eo_definitions.c
index 93779067c2..403b91a9e8 100644
--- a/src/lib/eolian/eo_definitions.c
+++ b/src/lib/eolian/eo_definitions.c
@@ -2,12 +2,25 @@
#include <stdlib.h>
#include "eo_definitions.h"
-#include "eolian_database.h"
+
+static void
+eo_definitions_type_free(Eo_Type_Def *tp)
+{
+ Eo_Type_Def *stp;
+ if (tp->name) eina_stringshare_del(tp->name);
+ /* for function types, this will map to arguments and ret_type */
+ if (tp->subtypes)
+ EINA_LIST_FREE(tp->subtypes, stp)
+ eo_definitions_type_free(stp);
+ if (tp->base_type)
+ eo_definitions_type_free(tp->base_type);
+ free(tp);
+}
static void
eo_definitions_ret_free(Eo_Ret_Def *ret)
{
- if (ret->type) database_type_del(ret->type);
+ if (ret->type) eo_definitions_type_free(ret->type);
if (ret->comment) eina_stringshare_del(ret->comment);
if (ret->dflt_ret_val) eina_stringshare_del(ret->dflt_ret_val);
free(ret);
@@ -16,7 +29,7 @@ eo_definitions_ret_free(Eo_Ret_Def *ret)
static void
eo_definitions_param_free(Eo_Param_Def *param)
{
- if (param->type) database_type_del(param->type);
+ if (param->type) eo_definitions_type_free(param->type);
if (param->name) eina_stringshare_del(param->name);
if (param->comment) eina_stringshare_del(param->comment);
free(param);
@@ -114,13 +127,13 @@ eo_definitions_impl_def_free(Eo_Implement_Def *impl)
}
void
-eo_definitions_type_def_free(Eo_Type_Def *type)
+eo_definitions_typedef_def_free(Eo_Typedef_Def *type)
{
if (type->alias)
eina_stringshare_del(type->alias);
if (type->type)
- database_type_del(type->type);
+ eo_definitions_type_free(type->type);
free(type);
}
@@ -188,8 +201,11 @@ eo_definitions_temps_free(Eo_Lexer_Temps *tmp)
if (tmp->ret_def)
eo_definitions_ret_free(tmp->ret_def);
+ if (tmp->typedef_def)
+ eo_definitions_typedef_def_free(tmp->typedef_def);
+
if (tmp->type_def)
- eo_definitions_type_def_free(tmp->type_def);
+ eo_definitions_type_free(tmp->type_def);
if (tmp->prop)
eo_definitions_property_def_free(tmp->prop);
@@ -214,7 +230,4 @@ eo_definitions_temps_free(Eo_Lexer_Temps *tmp)
if (tmp->impl)
eo_definitions_impl_def_free(tmp->impl);
-
- if (tmp->type)
- database_type_del(tmp->type);
}
diff --git a/src/lib/eolian/eo_definitions.h b/src/lib/eolian/eo_definitions.h
index 2a24c73367..79415df494 100644
--- a/src/lib/eolian/eo_definitions.h
+++ b/src/lib/eolian/eo_definitions.h
@@ -6,9 +6,29 @@
/* RET */
+typedef struct _eo_type_def Eo_Type_Def;
+struct _eo_type_def
+{
+ const char *name;
+ Eolian_Type_Type type;
+ union {
+ struct {
+ Eina_List *subtypes;
+ Eo_Type_Def *base_type;
+ };
+ struct {
+ Eina_List *arguments;
+ Eo_Type_Def *ret_type;
+ };
+ };
+ Eina_Bool is_const :1;
+ Eina_Bool is_own :1;
+ Eina_Bool is_struct :1;
+};
+
typedef struct _eo_ret_def
{
- Eolian_Type type;
+ Eo_Type_Def *type;
const char *comment;
const char *dflt_ret_val;
Eina_Bool warn_unused:1;
@@ -27,7 +47,7 @@ typedef enum _param_way
typedef struct _eo_param_def
{
Param_Way way;
- Eolian_Type type;
+ Eo_Type_Def *type;
const char *name;
const char *comment;
Eina_Bool nonull:1;
@@ -124,11 +144,11 @@ typedef struct _eo_class_def
/* TYPE */
-typedef struct _eo_type_def
+typedef struct _eo_typedef_def
{
const char *alias;
- Eolian_Type type;
-} Eo_Type_Def;
+ Eo_Type_Def *type;
+} Eo_Typedef_Def;
/* TEMPS */
@@ -139,6 +159,7 @@ typedef struct _Eo_Lexer_Temps
const char *legacy_def;
Eo_Class_Def *kls;
Eo_Ret_Def *ret_def;
+ Eo_Typedef_Def *typedef_def;
Eo_Type_Def *type_def;
Eo_Property_Def *prop;
Eo_Method_Def *meth;
@@ -148,11 +169,10 @@ typedef struct _Eo_Lexer_Temps
Eina_List *str_items;
Eo_Event_Def *event;
Eo_Implement_Def *impl;
- Eolian_Type type;
} Eo_Lexer_Temps;
void eo_definitions_class_def_free(Eo_Class_Def *kls);
-void eo_definitions_type_def_free(Eo_Type_Def *type);
+void eo_definitions_typedef_def_free(Eo_Typedef_Def *type);
void eo_definitions_temps_free(Eo_Lexer_Temps *tmp);
#endif /* __EO_DEFINITIONS_H__ */
diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c
index 23c0c10ae1..9c7483a4fe 100644
--- a/src/lib/eolian/eo_lexer.c
+++ b/src/lib/eolian/eo_lexer.c
@@ -26,6 +26,20 @@ static const char * const tokens[] =
KEYWORDS
};
+static const char * const ctypes[] =
+{
+ "char", "unsigned char", "signed char", "short", "unsigned short",
+ "int", "unsigned int", "long", "unsigned long", "long long",
+ "unsigned long long",
+
+ "int8_t", "uint8_t", "int16_t", "uint16_t", "int32_t", "uint32_t",
+ "int64_t", "uint64_t", "int128_t", "uint128_t",
+
+ "float", "double", "long double",
+
+ "void"
+};
+
#undef KW
#undef KWAT
@@ -168,6 +182,13 @@ lex(Eo_Lexer *ls, const char **value, int *kwid, const char *chars)
next_char(ls);
continue;
}
+ case '-':
+ {
+ next_char(ls);
+ if (ls->current != '>') return '-';
+ next_char(ls);
+ return TOK_ARROW;
+ }
case '\0':
return TOK_EOF;
default:
@@ -290,7 +311,7 @@ eo_lexer_free(Eo_Lexer *ls)
eo_definitions_class_def_free(nd->def_class);
break;
case NODE_TYPEDEF:
- eo_definitions_type_def_free(nd->def_type);
+ eo_definitions_typedef_def_free(nd->def_typedef);
break;
default:
break;
@@ -408,6 +429,19 @@ eo_lexer_keyword_str_get(int kw)
return tokens[kw + 2];
}
+Eina_Bool
+eo_lexer_is_type_keyword(int kw)
+{
+ return (kw >= KW_char && kw <= KW_ullong);
+}
+
+const char *
+eo_lexer_get_c_type(int kw)
+{
+ if (!eo_lexer_is_type_keyword(kw)) return NULL;
+ return ctypes[kw - KW_char];
+}
+
static int _init_counter = 0;
int
diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h
index b8188b2545..3c08485d46 100644
--- a/src/lib/eolian/eo_lexer.h
+++ b/src/lib/eolian/eo_lexer.h
@@ -11,16 +11,28 @@
enum Tokens
{
- TOK_COMMENT = START_CUSTOM, TOK_EOF, TOK_VALUE
+ TOK_ARROW = START_CUSTOM, TOK_COMMENT, TOK_EOF, TOK_VALUE
};
#define KEYWORDS KW(class), KW(const), KW(private), KW(protected), \
KW(return), KW(signed), KW(struct), KW(unsigned), KW(virtual), \
+ \
KW(abstract), KW(constructor), KW(constructors), KW(data), \
- KW(destructor), KW(eo_prefix), KW(events), KW(get), KW(implements), \
- KW(interface), KW(keys), KW(legacy), KW(legacy_prefix), KW(methods), \
- KW(mixin), KW(params), KW(properties), KW(set), KW(type), KW(values), \
- KWAT(in), KWAT(inout), KWAT(nonull), KWAT(out), KWAT(own), KWAT(warn_unused)
+ KW(destructor), KW(eo_prefix), KW(events), KW(func), KW(get), \
+ KW(implements), KW(interface), KW(keys), KW(legacy), KW(legacy_prefix), \
+ KW(methods), KW(mixin), KW(params), KW(properties), KW(set), KW(type), \
+ KW(values), KWAT(in), KWAT(inout), KWAT(nonull), KWAT(out), KWAT(own), \
+ KWAT(warn_unused), \
+ \
+ KW(char), KW(uchar), KW(schar), KW(short), KW(ushort), KW(int), KW(uint), \
+ KW(long), KW(ulong), KW(llong), KW(ullong), \
+ \
+ KW(int8), KW(uint8), KW(int16), KW(uint16), KW(int32), KW(uint32), \
+ KW(int64), KW(uint64), KW(int128), KW(uint128), \
+ \
+ KW(float), KW(double), KW(ldouble), \
+ \
+ KW(void)
#define KW(x) KW_##x
#define KWAT(x) KW_at_##x
@@ -28,8 +40,7 @@ enum Tokens
enum Keywords
{
KW_UNKNOWN = 0,
- KEYWORDS,
- NUM_KEYWORDS
+ KEYWORDS
};
#undef KW
@@ -52,9 +63,9 @@ typedef struct _Eo_Node
{
unsigned char type;
union {
- void *def;
- Eo_Class_Def *def_class;
- Eo_Type_Def *def_type;
+ void *def;
+ Eo_Class_Def *def_class;
+ Eo_Typedef_Def *def_typedef;
};
} Eo_Node;
@@ -88,6 +99,8 @@ void eo_lexer_lex_error (Eo_Lexer *ls, const char *msg, int token);
void eo_lexer_syntax_error (Eo_Lexer *ls, const char *msg);
void eo_lexer_token_to_str (int token, char *buf);
const char *eo_lexer_keyword_str_get(int kw);
+Eina_Bool eo_lexer_is_type_keyword(int kw);
+const char *eo_lexer_get_c_type (int kw);
extern int _eo_lexer_log_dom;
#ifdef CRITICAL
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 6016656164..950e29e86b 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -147,89 +147,85 @@ parse_name_list(Eo_Lexer *ls)
return ls->tmp.str_items;
}
-static Eina_Inlist *
-parse_type(Eo_Lexer *ls, Eina_Inlist *types, Eina_Strbuf *sbuf)
+static Eo_Type_Def *
+parse_type(Eo_Lexer *ls)
{
- Eina_Bool has_struct = EINA_FALSE, need_space = EINA_FALSE;
- Eina_Bool is_own = EINA_FALSE;
- Eina_Strbuf *buf = sbuf ? sbuf : push_strbuf(ls);
-
-#define CHECK_KW(kwname, cond) \
- if ((cond) && (ls->t.kw == KW_##kwname)) \
- { \
- if (need_space) eina_strbuf_append_char(buf, ' '); \
- eina_strbuf_append(buf, #kwname); \
- eo_lexer_get(ls); \
- need_space = EINA_TRUE; \
- }
-
- if (ls->t.kw == KW_at_own)
- {
- if (sbuf) eina_strbuf_append(buf, "@own ");
- is_own = EINA_TRUE;
- eo_lexer_get(ls);
- }
-
- CHECK_KW(const, EINA_TRUE)
-
- CHECK_KW(unsigned, EINA_TRUE)
- else CHECK_KW(signed, EINA_TRUE)
- else CHECK_KW(struct, EINA_TRUE)
-
- CHECK_KW(const, !has_struct)
-
- check(ls, TOK_VALUE);
- if (need_space) eina_strbuf_append_char(buf, ' ');
- eina_strbuf_append(buf, ls->t.value);
- eo_lexer_get(ls);
- need_space = EINA_TRUE;
-
- CHECK_KW(const, EINA_TRUE)
-
- if (ls->t.token == '*')
+ Eina_Bool has_struct = EINA_FALSE;
+ Eo_Type_Def *def;
+ const char *ctype;
+ switch (ls->t.kw)
{
- eina_strbuf_append_char(buf, ' ');
- while (ls->t.token == '*')
+ case KW_const:
+ {
+ int line;
+ eo_lexer_get(ls);
+ line = ls->line_number;
+ check_next(ls, '(');
+ def = parse_type(ls);
+ def->is_const = EINA_TRUE;
+ check_match(ls, ')', '(', line);
+ goto parse_ptr;
+ }
+ case KW_at_own:
{
- eina_strbuf_append_char(buf, '*');
+ int line;
eo_lexer_get(ls);
- CHECK_KW(const, EINA_TRUE)
+ line = ls->line_number;
+ check_next(ls, '(');
+ def = parse_type(ls);
+ def->is_own = EINA_TRUE;
+ check_match(ls, ')', '(', line);
+ goto parse_ptr;
}
+ case KW_struct:
+ eo_lexer_get(ls);
+ has_struct = EINA_TRUE;
+ break;
+ default:
+ break;
}
-
-#undef CHECK_KW
-
- if (!sbuf)
+ def = calloc(1, sizeof(Eo_Type_Def));
+ ls->tmp.type_def = def;
+ def->type = EOLIAN_TYPE_REGULAR;
+ def->is_struct = has_struct;
+ def->is_const = EINA_FALSE;
+ check(ls, TOK_VALUE);
+ ctype = eo_lexer_get_c_type(ls->t.kw);
+ def->name = eina_stringshare_add(ctype ? ctype : ls->t.value);
+ eo_lexer_get(ls);
+parse_ptr:
+ while (ls->t.token == '*')
{
- types = database_type_append(types, eina_strbuf_string_get(buf), is_own);
- ls->tmp.type = types;
- pop_strbuf(ls);
+ Eo_Type_Def *pdef = calloc(1, sizeof(Eo_Type_Def));
+ ls->tmp.type_def = pdef;
+ pdef->base_type = def;
+ pdef->type = EOLIAN_TYPE_POINTER;
+ def = pdef;
+ eo_lexer_get(ls);
}
-
if (ls->t.token == '<')
{
int line = ls->line_number;
- if (sbuf) eina_strbuf_append(buf, " <");
eo_lexer_get(ls);
- types = parse_type(ls, types, sbuf);
+ def->subtypes = eina_list_append(def->subtypes, parse_type(ls));
+ while (test_next(ls, ','))
+ def->subtypes = eina_list_append(def->subtypes, parse_type(ls));
check_match(ls, '>', '<', line);
- if (sbuf) eina_strbuf_append_char(buf, '>');
}
-
- return types;
+ return def;
}
static void
parse_typedef(Eo_Lexer *ls)
{
- ls->tmp.type_def = calloc(1, sizeof(Eo_Type_Def));
+ ls->tmp.typedef_def = calloc(1, sizeof(Eo_Typedef_Def));
eo_lexer_get(ls);
check(ls, TOK_VALUE);
- ls->tmp.type_def->alias = eina_stringshare_add(ls->t.value);
+ ls->tmp.typedef_def->alias = eina_stringshare_add(ls->t.value);
eo_lexer_get(ls);
test_next(ls, ':');
- ls->tmp.type_def->type = parse_type(ls, NULL, NULL);
- ls->tmp.type = NULL;
+ ls->tmp.typedef_def->type = parse_type(ls);
+ ls->tmp.type_def = NULL;
check_next(ls, ';');
}
@@ -239,8 +235,8 @@ parse_return(Eo_Lexer *ls)
Eo_Ret_Def *ret = calloc(1, sizeof(Eo_Ret_Def));
ls->tmp.ret_def = ret;
eo_lexer_get(ls);
- ret->type = parse_type(ls, NULL, NULL);
- ls->tmp.type = NULL;
+ ret->type = parse_type(ls);
+ ls->tmp.type_def = NULL;
if (ls->t.token == '(')
{
int line = ls->line_number;
@@ -287,8 +283,8 @@ parse_param(Eo_Lexer *ls, Eina_Bool allow_inout)
else
par->way = PARAM_IN;
}
- par->type = parse_type(ls, NULL, NULL);
- ls->tmp.type = NULL;
+ par->type = parse_type(ls);
+ ls->tmp.type_def = NULL;
check(ls, TOK_VALUE);
par->name = eina_stringshare_add(ls->t.value);
eo_lexer_get(ls);
@@ -882,8 +878,8 @@ parse_unit(Eo_Lexer *ls, Eina_Bool eot)
case KW_type:
{
parse_typedef(ls);
- append_node(ls, NODE_TYPEDEF, ls->tmp.type_def);
- ls->tmp.type_def = NULL;
+ append_node(ls, NODE_TYPEDEF, ls->tmp.typedef_def);
+ ls->tmp.typedef_def = NULL;
break;
}
def:
@@ -907,21 +903,53 @@ parse_chunk(Eo_Lexer *ls, Eina_Bool eot)
static char *_accessor_type_str[ACCESSOR_TYPE_LAST] = { "setter", "getter" };
static char * _param_way_str[ PARAM_WAY_LAST] = { "IN", "OUT", "INOUT" };
+typedef struct
+{
+ Eina_List *subtypes;
+ Eina_Stringshare *name;
+ Eina_Bool is_own :1;
+} _Parameter_Type;
+
static void
-_print_type(FILE *f, Eolian_Type tp)
+_print_type(FILE *f, Eo_Type_Def *tp)
{
- const char *type;
- Eina_Bool own;
- Eolian_Type ntp = eolian_type_information_get(tp, &type, &own);
- if (own)
- fputs("@own ", f);
- fputs(type, f);
- if (ntp)
+ Eina_List *l;
+ Eo_Type_Def *stp;
+ if (tp->is_own)
+ fputs("@own(", f);
+ if (tp->is_const)
+ fputs("const(", f);
+ if (tp->is_struct)
+ fputs("struct ", f);
+ if (tp->type == EOLIAN_TYPE_REGULAR)
+ fputs(tp->name, f);
+ else if (tp->type == EOLIAN_TYPE_POINTER)
+ {
+ _print_type(f, tp->base_type);
+ fputc('*', f);
+ }
+ else if (tp->type == EOLIAN_TYPE_FUNCTION)
{
- fputc('<', f);
- _print_type(f, ntp);
- fputc('>', f);
+ Eina_Bool first = EINA_TRUE;
+ fputs("fn", f);
+ if (tp->ret_type)
+ {
+ fputs(" -> ", f);
+ _print_type(f, tp->ret_type);
+ }
+ fputs(" (", f);
+ EINA_LIST_FOREACH(tp->arguments, l, stp)
+ {
+ if (!first) fputs(", ", f);
+ first = EINA_FALSE;
+ _print_type(f, stp);
+ }
+ fputc(')', f);
}
+ if (tp->is_own)
+ fputc(')', f);
+ if (tp->is_const)
+ fputc(')', f);
}
static void
@@ -1014,7 +1042,7 @@ _dump_class(Eo_Class_Def *kls)
}
static void
-_dump_type(Eo_Type_Def *type)
+_dump_type(Eo_Typedef_Def *type)
{
printf("Typedef: %s ", type->alias);
_print_type(stdout, type->type);
@@ -1035,7 +1063,7 @@ eo_parser_dump(Eo_Lexer *ls)
_dump_class(nd->def_class);
break;
case NODE_TYPEDEF:
- _dump_type(nd->def_type);
+ _dump_type(nd->def_typedef);
break;
default:
break;
@@ -1096,7 +1124,7 @@ _db_fill_class(Eo_Class_Def *kls, const char *filename)
database_function_data_set(foo_id, EOLIAN_LEGACY, meth->legacy);
EINA_LIST_FOREACH(meth->params, m, param)
{
- database_method_parameter_add(foo_id, (Eolian_Parameter_Dir)param->way, param->type, param->name, param->comment);
+ database_method_parameter_add(foo_id, (Eolian_Parameter_Dir)param->way, (Eolian_Type)param->type, param->name, param->comment);
param->type = NULL;
}
}
@@ -1108,14 +1136,14 @@ _db_fill_class(Eo_Class_Def *kls, const char *filename)
EINA_LIST_FOREACH(prop->keys, m, param)
{
Eolian_Function_Parameter p = database_property_key_add(
- foo_id, param->type, param->name, param->comment);
+ foo_id, (Eolian_Type)param->type, param->name, param->comment);
database_parameter_nonull_set(p, param->nonull);
param->type = NULL;
}
EINA_LIST_FOREACH(prop->values, m, param)
{
Eolian_Function_Parameter p = database_property_value_add(
- foo_id, param->type, param->name, param->comment);
+ foo_id, (Eolian_Type)param->type, param->name, param->comment);
database_parameter_nonull_set(p, param->nonull);
param->type = NULL;
}
@@ -1126,7 +1154,7 @@ _db_fill_class(Eo_Class_Def *kls, const char *filename)
accessor->type == SETTER?EOLIAN_PROP_SET:EOLIAN_PROP_GET;
if (accessor->ret && accessor->ret->type)
{
- database_function_return_type_set(foo_id, ftype, accessor->ret->type);
+ database_function_return_type_set(foo_id, ftype, (Eolian_Type)accessor->ret->type);
database_function_return_comment_set(foo_id,
ftype, accessor->ret->comment);
database_function_return_flag_set_as_warn_unused(foo_id,
@@ -1178,7 +1206,7 @@ _db_fill_class(Eo_Class_Def *kls, const char *filename)
database_class_function_add(class, foo_id);
if (meth->ret)
{
- database_function_return_type_set(foo_id, EOLIAN_METHOD, meth->ret->type);
+ database_function_return_type_set(foo_id, EOLIAN_METHOD, (Eolian_Type)meth->ret->type);
database_function_return_comment_set(foo_id, EOLIAN_METHOD, meth->ret->comment);
database_function_return_flag_set_as_warn_unused(foo_id,
EOLIAN_METHOD, meth->ret->warn_unused);
@@ -1192,7 +1220,7 @@ _db_fill_class(Eo_Class_Def *kls, const char *filename)
EINA_LIST_FOREACH(meth->params, m, param)
{
Eolian_Function_Parameter p = database_method_parameter_add(foo_id,
- (Eolian_Parameter_Dir)param->way, param->type, param->name, param->comment);
+ (Eolian_Parameter_Dir)param->way, (Eolian_Type)param->type, param->name, param->comment);
database_parameter_nonull_set(p, param->nonull);
param->type = NULL;
}
@@ -1253,9 +1281,9 @@ _db_fill_class(Eo_Class_Def *kls, const char *filename)
}
static Eina_Bool
-_db_fill_type(Eo_Type_Def *type_def)
+_db_fill_type(Eo_Typedef_Def *type_def)
{
- database_type_add(type_def->alias, type_def->type);
+ database_type_add(type_def->alias, (Eolian_Type)type_def->type);
type_def->type = NULL;
return EINA_TRUE;
}
@@ -1308,7 +1336,7 @@ nodeloop:
goto error;
break;
case NODE_TYPEDEF:
- if (!_db_fill_type(nd->def_type))
+ if (!_db_fill_type(nd->def_typedef))
goto error;
break;
default:
diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c
index f1f97fcbd4..66a07db580 100644
--- a/src/lib/eolian/eolian_database.c
+++ b/src/lib/eolian/eolian_database.c
@@ -75,11 +75,24 @@ typedef struct
Eina_Bool nonull :1; /* True if this argument cannot be NULL */
} _Parameter_Desc;
+/* maps directly to Eo_Type_Def */
typedef struct
{
- EINA_INLIST;
- Eina_Stringshare *name;
- Eina_Bool is_own :1; /* True if the ownership of this argument passes to the caller/callee */
+ const char *name;
+ Eolian_Type_Type type;
+ union {
+ struct {
+ Eina_List *subtypes;
+ Eolian_Type base_type;
+ };
+ struct {
+ Eina_List *arguments;
+ Eolian_Type ret_type;
+ };
+ };
+ Eina_Bool is_const :1;
+ Eina_Bool is_own :1;
+ Eina_Bool is_struct :1;
} _Parameter_Type;
typedef struct
@@ -107,13 +120,17 @@ _param_del(_Parameter_Desc *pdesc)
void
database_type_del(Eolian_Type type)
{
- while (type)
- {
- _Parameter_Type *ptype = (_Parameter_Type *) type;
- eina_stringshare_del(ptype->name);
- type = eina_inlist_remove(type, EINA_INLIST_GET(ptype));
- free(ptype);
- }
+ _Parameter_Type *typep = (_Parameter_Type*)type;
+ Eolian_Type stype;
+ if (!type) return;
+ if (typep->name) eina_stringshare_del(typep->name);
+ /* for function types, this will map to arguments and ret_type */
+ if (typep->subtypes)
+ EINA_LIST_FREE(typep->subtypes, stype)
+ database_type_del(stype);
+ if (typep->base_type)
+ database_type_del(typep->base_type);
+ free(typep);
}
static void
@@ -819,13 +836,11 @@ eolian_function_parameter_get(const Eolian_Function foo_id, const char *param_na
return NULL;
}
-EAPI Eina_Stringshare *
+EAPI Eolian_Type
eolian_parameter_type_get(const Eolian_Function_Parameter param)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(param, NULL);
- _Parameter_Type *type = (_Parameter_Type *)((_Parameter_Desc *)param)->type;
- eina_stringshare_ref(type->name);
- return type->name;
+ return ((_Parameter_Desc*)param)->type;
}
EAPI Eina_Stringshare *
@@ -860,13 +875,12 @@ eolian_parameters_list_get(Eolian_Function foo_id)
/* Get parameter information */
EAPI void
-eolian_parameter_information_get(const Eolian_Function_Parameter param_desc, Eolian_Parameter_Dir *param_dir, const char **type, const char **name, const char **description)
+eolian_parameter_information_get(const Eolian_Function_Parameter param_desc, Eolian_Parameter_Dir *param_dir, Eolian_Type *type, const char **name, const char **description)
{
_Parameter_Desc *param = (_Parameter_Desc *)param_desc;
EINA_SAFETY_ON_NULL_RETURN(param);
- _Parameter_Type *ptype = (_Parameter_Type *)((_Parameter_Desc *)param)->type;
if (param_dir) *param_dir = param->param_dir;
- if (type) *type = ptype->name;
+ if (type) *type = param->type;
if (name) *name = param->name;
if (description) *description = param->description;
}
@@ -882,35 +896,6 @@ database_parameter_const_attribute_set(Eolian_Function_Parameter param_desc, Ein
param->is_const_on_set = is_const;
}
-EAPI Eolian_Type
-eolian_parameter_types_list_get(const Eolian_Function_Parameter param_desc)
-{
- _Parameter_Desc *param = (_Parameter_Desc *)param_desc;
- EINA_SAFETY_ON_NULL_RETURN_VAL(param, NULL);
- return param->type;
-}
-
-EAPI Eolian_Type
-eolian_type_information_get(Eolian_Type list, const char **name, Eina_Bool *own)
-{
- _Parameter_Type *type = (_Parameter_Type *)list;
- if (name) *name = type->name;
- if (own) *own = type->is_own;
- return list->next;
-}
-
-Eolian_Type
-database_type_append(Eolian_Type types, const char *name, Eina_Bool own)
-{
- _Parameter_Type *type = calloc(1, sizeof(*type));
- type->name = eina_stringshare_add(name);
- type->is_own = own;
- if (types)
- return eina_inlist_append(types, EINA_INLIST_GET(type));
- else
- return EINA_INLIST_GET(type);
-}
-
void
database_parameter_type_set(Eolian_Function_Parameter param_desc, Eolian_Type types)
{
@@ -957,17 +942,8 @@ void database_function_return_type_set(Eolian_Function foo_id, Eolian_Function_T
}
}
-EAPI const char *
-eolian_function_return_type_get(Eolian_Function foo_id, Eolian_Function_Type ftype)
-{
- Eolian_Type types = eolian_function_return_types_list_get(foo_id, ftype);
- _Parameter_Type *type = (_Parameter_Type *)types;
- if (type) return type->name;
- else return NULL;
-}
-
EAPI Eolian_Type
-eolian_function_return_types_list_get(Eolian_Function foo_id, Eolian_Function_Type ftype)
+eolian_function_return_type_get(Eolian_Function foo_id, Eolian_Function_Type ftype)
{
_Function_Id *fid = (_Function_Id *)foo_id;
switch (ftype)
@@ -1158,6 +1134,149 @@ eolian_class_dtor_enable_get(const Eolian_Class class)
return cl->class_dtor_enable;
}
+EAPI Eolian_Type_Type
+eolian_type_type_get(Eolian_Type tp)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(tp, EOLIAN_TYPE_UNKNOWN_TYPE);
+ return ((_Parameter_Type*)tp)->type;
+}
+
+EAPI Eina_Iterator *
+eolian_type_arguments_list_get(Eolian_Type tp)
+{
+ _Parameter_Type *tpp = (_Parameter_Type*)tp;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(tp, NULL);
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(eolian_type_type_get(tp) == EOLIAN_TYPE_FUNCTION, NULL);
+ if (!tpp->arguments) return NULL;
+ return eina_list_iterator_new(tpp->arguments);
+}
+
+EAPI Eina_Iterator *
+eolian_type_subtypes_list_get(Eolian_Type tp)
+{
+ _Parameter_Type *tpp = (_Parameter_Type*)tp;
+ Eolian_Type_Type tpt;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(tp, NULL);
+ tpt = tpp->type;
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(tpt == EOLIAN_TYPE_REGULAR || tpt == EOLIAN_TYPE_POINTER, NULL);
+ if (!tpp->subtypes) return NULL;
+ return eina_list_iterator_new(tpp->subtypes);
+}
+
+EAPI Eolian_Type
+eolian_type_return_type_get(Eolian_Type tp)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(tp, NULL);
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(eolian_type_type_get(tp) == EOLIAN_TYPE_FUNCTION, NULL);
+ return ((_Parameter_Type*)tp)->ret_type;
+}
+
+EAPI Eolian_Type
+eolian_type_base_type_get(Eolian_Type tp)
+{
+ Eolian_Type_Type tpt;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(tp, NULL);
+ tpt = eolian_type_type_get(tp);
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(tpt == EOLIAN_TYPE_REGULAR || tpt == EOLIAN_TYPE_POINTER, NULL);
+ return ((_Parameter_Type*)tp)->base_type;
+}
+
+EAPI Eina_Bool
+eolian_type_is_own(Eolian_Type tp)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(tp, EINA_FALSE);
+ return ((_Parameter_Type*)tp)->is_own;
+}
+
+EAPI Eina_Bool
+eolian_type_is_const(Eolian_Type tp)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(tp, EINA_FALSE);
+ return ((_Parameter_Type*)tp)->is_const;
+}
+
+static void _type_to_str(Eolian_Type tp, Eina_Strbuf *buf, const char *name);
+
+static void
+_ftype_to_str(Eolian_Type tp, Eina_Strbuf *buf, const char *name)
+{
+ _Parameter_Type *tpp = (_Parameter_Type*)tp;
+ Eina_List *l;
+ Eolian_Type stp;
+ Eina_Bool first = EINA_TRUE;
+ if (tpp->ret_type)
+ _type_to_str(tpp->ret_type, buf, NULL);
+ else
+ eina_strbuf_append(buf, "void");
+ eina_strbuf_append(buf, " (*");
+ if (name) eina_strbuf_append(buf, name);
+ eina_strbuf_append(buf, ")(");
+ EINA_LIST_FOREACH(tpp->arguments, l, stp)
+ {
+ if (!first) eina_strbuf_append(buf, ", ");
+ first = EINA_FALSE;
+ _type_to_str(stp, buf, NULL);
+ }
+}
+
+static void
+_type_to_str(Eolian_Type tp, Eina_Strbuf *buf, const char *name)
+{
+ _Parameter_Type *tpp = (_Parameter_Type*)tp;
+ if (tpp->type == EOLIAN_TYPE_FUNCTION)
+ {
+ _ftype_to_str(tp, buf, name);
+ return;
+ }
+ if (tpp->type == EOLIAN_TYPE_REGULAR && tpp->is_const)
+ eina_strbuf_append(buf, "const ");
+ if (tpp->is_struct)
+ eina_strbuf_append(buf, "struct ");
+ if (tpp->type == EOLIAN_TYPE_REGULAR)
+ eina_strbuf_append(buf, tpp->name);
+ else
+ {
+ _Parameter_Type *btpp = (_Parameter_Type*)tpp->base_type;
+ _type_to_str(tpp->base_type, buf, NULL);
+ if (btpp->type != EOLIAN_TYPE_POINTER || btpp->is_const)
+ eina_strbuf_append_char(buf, ' ');
+ eina_strbuf_append_char(buf, '*');
+ if (tpp->is_const) eina_strbuf_append(buf, " const");
+ }
+ if (name)
+ {
+ eina_strbuf_append_char(buf, ' ');
+ eina_strbuf_append(buf, name);
+ }
+}
+
+EAPI Eina_Stringshare *
+eolian_type_c_type_named_get(Eolian_Type tp, const char *name)
+{
+ Eina_Stringshare *ret;
+ Eina_Strbuf *buf;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(tp, NULL);
+ buf = eina_strbuf_new();
+ _type_to_str(tp, buf, name);
+ ret = eina_stringshare_add(eina_strbuf_string_get(buf));
+ eina_strbuf_free(buf);
+ return ret;
+}
+
+EAPI Eina_Stringshare *
+eolian_type_c_type_get(Eolian_Type tp)
+{
+ return eolian_type_c_type_named_get(tp, NULL);
+}
+
+EAPI Eina_Stringshare *
+eolian_type_name_get(Eolian_Type tp)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(tp, NULL);
+ eina_stringshare_ref(((_Parameter_Type*)tp)->name);
+ return ((_Parameter_Type*)tp)->name;
+}
+
static void
_implements_print(Eolian_Implement impl, int nb_spaces)
{
@@ -1192,6 +1311,49 @@ _event_print(Eolian_Event ev, int nb_spaces)
printf("%*s <%s> <%s> <%s>\n", nb_spaces + 5, "", name, type, comment);
}
+static void
+_type_print(Eolian_Type tp, Eina_Strbuf *buf)
+{
+ _Parameter_Type *tpp = (_Parameter_Type*)tp;
+ Eina_List *l;
+ Eolian_Type stp;
+ if (tpp->is_own)
+ eina_strbuf_append(buf, "@own(");
+ if (tpp->is_const)
+ eina_strbuf_append(buf, "const(");
+ if (tpp->is_struct)
+ eina_strbuf_append(buf, "struct ");
+ if (tpp->type == EOLIAN_TYPE_REGULAR)
+ eina_strbuf_append(buf, tpp->name);
+ else if (tpp->type == EOLIAN_TYPE_POINTER)
+ {
+ _type_print(tpp->base_type, buf);
+ eina_strbuf_append_char(buf, '*');
+ }
+ else if (tpp->type == EOLIAN_TYPE_FUNCTION)
+ {
+ Eina_Bool first = EINA_TRUE;
+ eina_strbuf_append(buf, "fn");
+ if (tpp->ret_type)
+ {
+ eina_strbuf_append(buf, " -> ");
+ _type_print(tpp->ret_type, buf);
+ }
+ eina_strbuf_append(buf, " (");
+ EINA_LIST_FOREACH(tpp->arguments, l, stp)
+ {
+ if (!first) eina_strbuf_append(buf, ", ");
+ first = EINA_FALSE;
+ _type_print(stp, buf);
+ }
+ eina_strbuf_append_char(buf, ')');
+ }
+ if (tpp->is_own)
+ eina_strbuf_append_char(buf, ')');
+ if (tpp->is_const)
+ eina_strbuf_append_char(buf, ')');
+}
+
static Eina_Bool _function_print(const _Function_Id *fid, int nb_spaces)
{
Eolian_Function foo_id = (Eolian_Function) fid;
@@ -1282,16 +1444,7 @@ static Eina_Bool _function_print(const _Function_Id *fid, int nb_spaces)
break;
}
Eina_Strbuf *type_buf = eina_strbuf_new();
- Eolian_Type type = param->type;
- while (type)
- {
- const char *type_str = NULL;
- Eina_Bool is_own = EINA_FALSE;
- type = eolian_type_information_get(type, &type_str, &is_own);
- eina_strbuf_append_printf(type_buf, "%s%s%s",
- eina_strbuf_length_get(type_buf)?"/":"",
- type_str, is_own?"@own":"");
- }
+ _type_print(param->type, type_buf);
printf("%*s%s <%s> <%s> <%s>\n", nb_spaces + 5, "",
param_dir, param->name,
eina_strbuf_string_get(type_buf),
diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h
index 5c399549d7..7965f46f39 100644
--- a/src/lib/eolian/eolian_database.h
+++ b/src/lib/eolian/eolian_database.h
@@ -89,8 +89,6 @@ Eolian_Function_Parameter database_property_value_add(Eolian_Function foo_id, Eo
/* Add a parameter to a method */
Eolian_Function_Parameter database_method_parameter_add(Eolian_Function foo_id, Eolian_Parameter_Dir param_dir, Eolian_Type type, const char *name, const char *description);
-Eolian_Type database_type_append(Eolian_Type types, const char *name, Eina_Bool own);
-
void database_type_del(Eolian_Type type);
void database_parameter_const_attribute_set(Eolian_Function_Parameter param_desc, Eina_Bool is_get, Eina_Bool is_const);
diff --git a/src/lib/evas/canvas/evas.eo b/src/lib/evas/canvas/evas.eo
index 85a64961b0..8335a6e918 100644
--- a/src/lib/evas/canvas/evas.eo
+++ b/src/lib/evas/canvas/evas.eo
@@ -343,7 +343,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
@return An .Evas_Lock handle to query Evas' keys subsystem with
evas_key_lock_is_set(), or @c NULL on error. */
- return const Evas_Lock * @warn_unused;
+ return const(Evas_Lock)* @warn_unused;
}
}
pointer_canvas_xy {
@@ -523,7 +523,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
@return An .Evas_Modifier handle to query Evas' keys subsystem
with evas_key_modifier_is_set(), or @c NULL on error. */
- return const Evas_Modifier * @warn_unused;
+ return const(Evas_Modifier)* @warn_unused;
}
}
pointer_button_down_mask {
@@ -597,8 +597,8 @@ class Evas (Eo_Base, Evas_Common_Interface)
params {
@in int direction; /*@ The wheel mouse direction. */
@in int z; /*@ How much mouse wheel was scrolled up or down. */
- @in unsigned int timestamp; /*@ The timestamp of the mouse up event. */
- @in const void *data; /*@ The data for canvas. */
+ @in uint timestamp; /*@ The timestamp of the mouse up event. */
+ @in const(void)* data; /*@ The data for canvas. */
}
}
key_lock_on {
@@ -615,7 +615,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
@see evas_key_lock_off */
params {
- @in const char *keyname @nonull; /*@ The name of the lock to enable. */
+ @in const(char)* keyname @nonull; /*@ The name of the lock to enable. */
}
}
event_feed_key_down {
@@ -627,12 +627,12 @@ class Evas (Eo_Base, Evas_Common_Interface)
callback function. */
params {
- @in const char *keyname; /*@ Name of the key */
- @in const char *key; /*@ The key pressed. */
- @in const char *string; /*@ A String */
- @in const char *compose; /*@ The compose string */
- @in unsigned int timestamp; /*@ Timestamp of the mouse up event */
- @in const void *data; /*@ Data for canvas. */
+ @in const(char)* keyname; /*@ Name of the key */
+ @in const(char)* key; /*@ The key pressed. */
+ @in const(char)* string; /*@ A String */
+ @in const(char)* compose; /*@ The compose string */
+ @in uint timestamp; /*@ Timestamp of the mouse up event */
+ @in const(void)* data; /*@ Data for canvas. */
}
}
key_modifier_mask_get {
@@ -659,7 +659,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
const;
return Evas_Modifier_Mask @warn_unused;
params {
- @in const char *keyname @nonull; /*@ The name of the modifier key to create the mask for. */
+ @in const(char)* keyname @nonull; /*@ The name of the modifier key to create the mask for. */
}
}
key_modifier_add {
@@ -689,7 +689,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
"Control", "Alt", "Meta", "Hyper", "Super". */
params {
- @in const char *keyname @nonull; /*@ The name of the modifier key to add to the list of
+ @in const(char)* keyname @nonull; /*@ The name of the modifier key to add to the list of
Evas modifiers. */
}
}
@@ -704,7 +704,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
@see evas_key_modifier_is_set */
params {
- @in const char *keyname @nonull; /*@ The name of the modifier to disable. */
+ @in const(char)* keyname @nonull; /*@ The name of the modifier to disable. */
}
}
event_feed_hold {
@@ -715,8 +715,8 @@ class Evas (Eo_Base, Evas_Common_Interface)
params {
@in int hold; /*@ The hold. */
- @in unsigned int timestamp; /*@ The timestamp of the mouse up event. */
- @in const void *data; /*@ The data for canvas. */
+ @in uint timestamp; /*@ The timestamp of the mouse up event. */
+ @in const(void)* data; /*@ The data for canvas. */
}
}
event_feed_mouse_move {
@@ -730,8 +730,8 @@ class Evas (Eo_Base, Evas_Common_Interface)
params {
@in int x; /*@ The horizontal position of the mouse pointer. */
@in int y; /*@ The vertical position of the mouse pointer. */
- @in unsigned int timestamp; /*@ The timestamp of the mouse up event. */
- @in const void *data; /*@ The data for canvas. */
+ @in uint timestamp; /*@ The timestamp of the mouse up event. */
+ @in const(void)* data; /*@ The data for canvas. */
}
}
event_feed_key_up {
@@ -743,12 +743,12 @@ class Evas (Eo_Base, Evas_Common_Interface)
callback function. */
params {
- @in const char *keyname; /*@ Name of the key */
- @in const char *key; /*@ The key released. */
- @in const char *string; /*@ string */
- @in const char *compose; /*@ compose */
- @in unsigned int timestamp; /*@ Timestamp of the mouse up event */
- @in const void *data; /*@ Data for canvas. */
+ @in const(char)* keyname; /*@ Name of the key */
+ @in const(char)* key; /*@ The key released. */
+ @in const(char)* string; /*@ string */
+ @in const(char)* compose; /*@ compose */
+ @in uint timestamp; /*@ Timestamp of the mouse up event */
+ @in const(void)* data; /*@ Data for canvas. */
}
}
event_feed_mouse_out {
@@ -760,8 +760,8 @@ class Evas (Eo_Base, Evas_Common_Interface)
by the callback function. */
params {
- @in unsigned int timestamp; /*@ Timestamp of the mouse up event. */
- @in const void *data; /*@ The data for canvas. */
+ @in uint timestamp; /*@ Timestamp of the mouse up event. */
+ @in const(void)* data; /*@ The data for canvas. */
}
}
event_input_multi_move {
@@ -777,8 +777,8 @@ class Evas (Eo_Base, Evas_Common_Interface)
@in double ang;
@in double fx;
@in double fy;
- @in unsigned int timestamp;
- @in const void *data;
+ @in uint timestamp;
+ @in const(void)* data;
}
}
objects_at_xy_get {
@@ -823,8 +823,8 @@ class Evas (Eo_Base, Evas_Common_Interface)
@in double fx;
@in double fy;
@in Evas_Button_Flags flags;
- @in unsigned int timestamp;
- @in const void *data;
+ @in uint timestamp;
+ @in const(void)* data;
}
}
event_feed_multi_down {
@@ -841,8 +841,8 @@ class Evas (Eo_Base, Evas_Common_Interface)
@in double fx;
@in double fy;
@in Evas_Button_Flags flags;
- @in unsigned int timestamp;
- @in const void *data;
+ @in uint timestamp;
+ @in const(void)* data;
}
}
render_async {
@@ -891,8 +891,8 @@ class Evas (Eo_Base, Evas_Common_Interface)
the window/surface. */
@in int y; /*@ The vertical position of the mouse pointer relative to the 0,0 of
the window/surface. */
- @in unsigned int timestamp; /*@ The timestamp of the mouse move event. */
- @in const void *data; /*@ The data for canvas. */
+ @in uint timestamp; /*@ The timestamp of the mouse move event. */
+ @in const(void)* data; /*@ The data for canvas. */
}
}
norender {
@@ -931,7 +931,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
@see evas_touch_point_list_nth_id_get()
@see evas_touch_point_list_nth_state_get() */
- return unsigned int;
+ return uint;
}
event_input_multi_down {
/*@ No description supplied by the EAPI. */
@@ -947,8 +947,8 @@ class Evas (Eo_Base, Evas_Common_Interface)
@in double fx;
@in double fy;
@in Evas_Button_Flags flags;
- @in unsigned int timestamp;
- @in const void *data;
+ @in uint timestamp;
+ @in const(void)* data;
}
}
nochange_pop {
@@ -975,7 +975,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
@see evas_key_lock_on */
params {
- @in const char *keyname @nonull; /*@ The name of the lock to disable. */
+ @in const(char)* keyname @nonull; /*@ The name of the lock to disable. */
}
}
nochange_push {
@@ -1051,7 +1051,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
@see evas_key_modifier_is_set */
params {
- @in const char *keyname @nonull; /*@ The name of the modifier to enable. */
+ @in const(char)* keyname @nonull; /*@ The name of the modifier to enable. */
}
}
event_feed_mouse_up {
@@ -1065,8 +1065,8 @@ class Evas (Eo_Base, Evas_Common_Interface)
params {
@in int b; /*@ The button number. */
@in Evas_Button_Flags flags; /*@ evas button flags. */
- @in unsigned int timestamp; /*@ The timestamp of the mouse up event. */
- @in const void *data; /*@ The data for canvas. */
+ @in uint timestamp; /*@ The timestamp of the mouse up event. */
+ @in const(void)* data; /*@ The data for canvas. */
}
}
event_feed_mouse_down {
@@ -1080,8 +1080,8 @@ class Evas (Eo_Base, Evas_Common_Interface)
params {
@in int b; /*@ The button number. */
@in Evas_Button_Flags flags; /*@ The evas button flags. */
- @in unsigned int timestamp; /*@ The timestamp of the mouse down event. */
- @in const void *data; /*@ The data for canvas. */
+ @in uint timestamp; /*@ The timestamp of the mouse down event. */
+ @in const(void)* data; /*@ The data for canvas. */
}
}
event_refeed_event {
@@ -1143,7 +1143,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
const;
return Evas_Object * @warn_unused;
params {
- @in const char *name; /*@ The given name. */
+ @in const(char)* name; /*@ The given name. */
}
}
font_path_append {
@@ -1152,7 +1152,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
@ingroup Evas_Font_Path_Group */
params {
- @in const char *path @nonull; /*@ The new font path. */
+ @in const(char)* path @nonull; /*@ The new font path. */
}
}
touch_point_list_nth_id_get {
@@ -1183,7 +1183,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
return int;
params {
- @in unsigned int n; /*@ The number of the touched point (0 being the first). */
+ @in uint n; /*@ The number of the touched point (0 being the first). */
}
}
font_path_clear {
@@ -1227,7 +1227,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
@see evas_touch_point_list_nth_state_get() */
params {
- @in unsigned int n; /*@ The number of the touched point (0 being the first). */
+ @in uint n; /*@ The number of the touched point (0 being the first). */
@out Evas_Coord x; /*@ The pointer to a Evas_Coord to be filled in. */
@out Evas_Coord y; /*@ The pointer to a Evas_Coord to be filled in. */
}
@@ -1243,7 +1243,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
@see evas_key_lock_off */
params {
- @in const char *keyname @nonull; /*@ The name of the key to remove from the locks list. */
+ @in const(char)* keyname @nonull; /*@ The name of the key to remove from the locks list. */
}
}
damage_rectangle_add {
@@ -1274,7 +1274,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
@ingroup Evas_Font_Path_Group */
const;
- return const Eina_List * @warn_unused;
+ return const(Eina_List)* @warn_unused;
}
image_cache_reload {
/*@
@@ -1323,8 +1323,8 @@ class Evas (Eo_Base, Evas_Common_Interface)
@in double ang;
@in double fx;
@in double fy;
- @in unsigned int timestamp;
- @in const void *data;
+ @in uint timestamp;
+ @in const(void)* data;
}
}
render_updates {
@@ -1404,7 +1404,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
@see evas_key_modifier_is_set */
params {
- @in const char *keyname @nonull; /*@ The name of the key to remove from the modifiers list. */
+ @in const(char)* keyname @nonull; /*@ The name of the key to remove from the modifiers list. */
}
}
touch_point_list_nth_state_get {
@@ -1437,7 +1437,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
return Evas_Touch_Point_State;
params {
- @in unsigned int n; /*@ The number of the touched point (0 being the first). */
+ @in uint n; /*@ The number of the touched point (0 being the first). */
}
}
focus_in {
@@ -1528,8 +1528,8 @@ class Evas (Eo_Base, Evas_Common_Interface)
by the callback function. */
params {
- @in unsigned int timestamp; /*@ The timestamp of the mouse up event. */
- @in const void *data; /*@ The data for canvas. */
+ @in uint timestamp; /*@ The timestamp of the mouse up event. */
+ @in const(void)* data; /*@ The data for canvas. */
}
}
object_top_in_rectangle_get {
@@ -1586,8 +1586,8 @@ class Evas (Eo_Base, Evas_Common_Interface)
@in double fx;
@in double fy;
@in Evas_Button_Flags flags;
- @in unsigned int timestamp;
- @in const void *data;
+ @in uint timestamp;
+ @in const(void)* data;
}
}
font_path_prepend {
@@ -1596,7 +1596,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
@ingroup Evas_Font_Path_Group */
params {
- @in const char *path @nonull; /*@ The new font path. */
+ @in const(char)* path @nonull; /*@ The new font path. */
}
}
obscured_clear {
@@ -1630,8 +1630,8 @@ class Evas (Eo_Base, Evas_Common_Interface)
mouse cancel event happens. */
params {
- @in unsigned int timestamp; /*@ The timestamp of the mouse up event. */
- @in const void *data; /*@ The data for canvas. */
+ @in uint timestamp; /*@ The timestamp of the mouse up event. */
+ @in const(void)* data; /*@ The data for canvas. */
}
}
coord_screen_x_to_world {
@@ -1689,7 +1689,7 @@ class Evas (Eo_Base, Evas_Common_Interface)
"Num_Lock", "Scroll_Lock". */
params {
- @in const char *keyname @nonull; /*@ The name of the key to add to the locks list. */
+ @in const(char)* keyname @nonull; /*@ The name of the key to add to the locks list. */
}
}
render_idle_flush {
@@ -1741,13 +1741,13 @@ class Evas (Eo_Base, Evas_Common_Interface)
@since 1.10 */
params {
- @in const char *keyname; /*@ Name of the key */
- @in const char *key; /*@ The key pressed. */
- @in const char *string; /*@ A String */
- @in const char *compose; /*@ The compose string */
- @in unsigned int timestamp; /*@ Timestamp of the mouse up event */
- @in const void *data; /*@ Data for canvas. */
- @in unsigned int keycode; /*@ Key scan code numeric value for canvas. */
+ @in const(char)* keyname; /*@ Name of the key */
+ @in const(char)* key; /*@ The key pressed. */
+ @in const(char)* string; /*@ A String */
+ @in const(char)* compose; /*@ The compose string */
+ @in uint timestamp; /*@ Timestamp of the mouse up event */
+ @in const(void)* data; /*@ Data for canvas. */
+ @in uint keycode; /*@ Key scan code numeric value for canvas. */
}
}
event_feed_key_up_with_keycode {
@@ -1761,13 +1761,13 @@ class Evas (Eo_Base, Evas_Common_Interface)
@since 1.10 */
params {
- @in const char *keyname; /*@ Name of the key */
- @in const char *key; /*@ The key released. */
- @in const char *string; /*@ string */
- @in const char *compose; /*@ compose */
- @in unsigned int timestamp; /*@ Timestamp of the mouse up event */
- @in const void *data; /*@ Data for canvas. */
- @in unsigned int keycode; /*@ Key scan code numeric value for canvas. */
+ @in const(char)* keyname; /*@ Name of the key */
+ @in const(char)* key; /*@ The key released. */
+ @in const(char)* string; /*@ string */
+ @in const(char)* compose; /*@ compose */
+ @in uint timestamp; /*@ Timestamp of the mouse up event */
+ @in const(void)* data; /*@ Data for canvas. */
+ @in uint keycode; /*@ Key scan code numeric value for canvas. */
}
}
}
diff --git a/src/lib/evas/canvas/evas_3d_camera.eo b/src/lib/evas/canvas/evas_3d_camera.eo
index 1f010500aa..ad3db0e75c 100644
--- a/src/lib/evas/canvas/evas_3d_camera.eo
+++ b/src/lib/evas/canvas/evas_3d_camera.eo
@@ -19,7 +19,7 @@ class Evas_3D_Camera (Evas_3D_Object, Evas_Common_Interface)
@ingroup Evas_3D_Camera
*/
params {
- @in const Evas_Real *matrix; /*@ Projection Matrix */
+ @in const(Evas_Real)* matrix; /*@ Projection Matrix */
}
}
diff --git a/src/lib/evas/canvas/evas_3d_mesh.eo b/src/lib/evas/canvas/evas_3d_mesh.eo
index 7dd57bfa1d..923d93a4ec 100644
--- a/src/lib/evas/canvas/evas_3d_mesh.eo
+++ b/src/lib/evas/canvas/evas_3d_mesh.eo
@@ -15,8 +15,8 @@ class Evas_3D_Mesh (Evas_3D_Object, Evas_Common_Interface)
*/
params {
@in Evas_3D_Mesh_File_Type type; /*@ The type of the mesh file. */
- @in const char *file; /*@ Path to the mesh file. */
- @in const char *key; /*@ Key in the mesh file. */
+ @in const(char)* file; /*@ Path to the mesh file. */
+ @in const(char)* key; /*@ Key in the mesh file. */
}
}
@@ -31,8 +31,8 @@ class Evas_3D_Mesh (Evas_3D_Object, Evas_Common_Interface)
*/
params {
@in Evas_3D_Mesh_File_Type type; /*@ The type of the mesh file. */
- @in const char *file; /*@ Path to the mesh file. */
- @in const char *key; /*@ Key in the mesh file. */
+ @in const(char)* file; /*@ Path to the mesh file. */
+ @in const(char)* key; /*@ Key in the mesh file. */
}
}
@@ -57,7 +57,7 @@ class Evas_3D_Mesh (Evas_3D_Object, Evas_Common_Interface)
@in int frame; /*@ The number of the key frame. */
@in Evas_3D_Vertex_Attrib attrib; /*@ Vertex attribute ID. */
@in int stride; /*@ Stride to go to the next vertex (in bytes). */
- @in const void *data; /*@ Pointer to the vertex data buffer. */
+ @in const(void)* data; /*@ Pointer to the vertex data buffer. */
}
}
@@ -79,7 +79,7 @@ class Evas_3D_Mesh (Evas_3D_Object, Evas_Common_Interface)
@in int frame; /*@ The number of the key frame. */
@in Evas_3D_Vertex_Attrib attrib; /*@ Vertex attribute ID. */
@in int stride; /*@ Stride to go to the next vertex (in bytes). */
- @in const void *data; /*@ Pointer to the vertex data buffer. */
+ @in const(void)* data; /*@ Pointer to the vertex data buffer. */
}
}
@@ -160,7 +160,7 @@ class Evas_3D_Mesh (Evas_3D_Object, Evas_Common_Interface)
params {
@in Evas_3D_Index_Format format; /*@ Vertex index data format. */
@in int count; /*@ Vertex index count. */
- @in const void *indices; /*@ Pointer to the index data. */
+ @in const(void)* indices; /*@ Pointer to the index data. */
}
}
@@ -180,7 +180,7 @@ class Evas_3D_Mesh (Evas_3D_Object, Evas_Common_Interface)
params {
@in Evas_3D_Index_Format format; /*@ Vertex index data format. */
@in int count; /*@ Vertex index count. */
- @in const void *indices; /*@ Pointer to the index data. */
+ @in const(void)* indices; /*@ Pointer to the index data. */
}
}
@@ -295,7 +295,7 @@ class Evas_3D_Mesh (Evas_3D_Object, Evas_Common_Interface)
@ingroup Evas_3D_Mesh
*/
params {
- @in unsigned int count; /*@ Vertex count.*/
+ @in uint count; /*@ Vertex count.*/
}
}
diff --git a/src/lib/evas/canvas/evas_3d_node.eo b/src/lib/evas/canvas/evas_3d_node.eo
index 7ec7e6809e..a02186bd9a 100644
--- a/src/lib/evas/canvas/evas_3d_node.eo
+++ b/src/lib/evas/canvas/evas_3d_node.eo
@@ -79,7 +79,7 @@ class Evas_3D_Node (Evas_3D_Object, Evas_Common_Interface)
@ingroup Evas_3D_Node
*/
const;
- return const Eina_List * ;
+ return const(Eina_List)*;
}
position_set {
@@ -327,7 +327,7 @@ class Evas_3D_Node (Evas_3D_Object, Evas_Common_Interface)
@ingroup Evas_3D_Node
*/
const;
- return const Eina_List *;
+ return const(Eina_List)*;
}
bounding_box_get{
diff --git a/src/lib/evas/canvas/evas_3d_texture.eo b/src/lib/evas/canvas/evas_3d_texture.eo
index 756007d0fe..7b82722d4b 100644
--- a/src/lib/evas/canvas/evas_3d_texture.eo
+++ b/src/lib/evas/canvas/evas_3d_texture.eo
@@ -47,7 +47,7 @@ class Evas_3D_Texture (Evas_3D_Object, Evas_Common_Interface)
@in Evas_3D_Pixel_Format pixel_format; /*@ Pixel format of the data. */
@in int w; /*@ Width of the data. */
@in int h; /*@ Height of the data. */
- @in const void *data; /*@ Pointer to the data. */
+ @in const(void)* data; /*@ Pointer to the data. */
}
}
@@ -62,8 +62,8 @@ class Evas_3D_Texture (Evas_3D_Object, Evas_Common_Interface)
return void ;
params {
- @in const char *file; /*@ Path to the image file. */
- @in const char *key; /*@ Key in the image file. */
+ @in const(char)* file; /*@ Path to the image file. */
+ @in const(char)* key; /*@ Key in the image file. */
}
}
diff --git a/src/lib/evas/canvas/evas_box.eo b/src/lib/evas/canvas/evas_box.eo
index 2017915f89..04cae39e9a 100644
--- a/src/lib/evas/canvas/evas_box.eo
+++ b/src/lib/evas/canvas/evas_box.eo
@@ -78,7 +78,7 @@ class Evas_Box (Evas_Smart_Clipped)
}
values {
Evas_Object_Box_Layout cb @nonull; /*@ The new layout function to set on @p o. */
- const void *data; /*@ Data pointer to be passed to @p cb. */
+ const(void)* data; /*@ Data pointer to be passed to @p cb. */
Eina_Free_Cb free_data; /*@ Function to free @p data, if need be. */
}
}
@@ -247,7 +247,7 @@ class Evas_Box (Evas_Smart_Clipped)
return Evas_Object_Box_Option *;
params {
@in Evas_Object *child @nonull; /*@ A child Evas object to be made a member of @p o */
- @in const Evas_Object *reference @nonull; /*@ The child object to place this new one after */
+ @in const(Evas_Object)* reference @nonull; /*@ The child object to place this new one after */
}
}
remove_all {
@@ -332,7 +332,7 @@ class Evas_Box (Evas_Smart_Clipped)
const;
return int @warn_unused;
params {
- @in const char *name @nonull; /*@ The name string of the option being searched, for
+ @in const(char)* name @nonull; /*@ The name string of the option being searched, for
its ID */
}
}
@@ -406,7 +406,7 @@ class Evas_Box (Evas_Smart_Clipped)
legacy null;
return Evas_Object *;
params {
- @in unsigned int pos;
+ @in uint pos;
}
}
remove_at {
@@ -429,7 +429,7 @@ class Evas_Box (Evas_Smart_Clipped)
return Eina_Bool;
params {
- @in unsigned int pos; /*@ The numeric position (starting from @c 0) of the child
+ @in uint pos; /*@ The numeric position (starting from @c 0) of the child
object to be removed */
}
}
@@ -462,7 +462,7 @@ class Evas_Box (Evas_Smart_Clipped)
return Evas_Object_Box_Option *;
params {
@in Evas_Object *child;
- @in unsigned int pos;
+ @in uint pos;
}
}
insert_before {
@@ -487,7 +487,7 @@ class Evas_Box (Evas_Smart_Clipped)
return Evas_Object_Box_Option *;
params {
@in Evas_Object *child @nonull; /*@ A child Evas object to be made a member of @p o */
- @in const Evas_Object *reference @nonull; /*@ The child object to place this new one before */
+ @in const(Evas_Object)* reference @nonull; /*@ The child object to place this new one before */
}
}
option_property_name_get {
@@ -505,7 +505,7 @@ class Evas_Box (Evas_Smart_Clipped)
box, which is originally set to @c NULL. */
const;
- return const char * @warn_unused;
+ return const(char)* @warn_unused;
params {
@in int property; /*@ The numerical identifier of the option being searched,
for its name */
@@ -517,7 +517,7 @@ class Evas_Box (Evas_Smart_Clipped)
return Evas_Object_Box_Option *;
params {
@in Evas_Object *child;
- @in const Evas_Object *reference;
+ @in const(Evas_Object)* reference;
}
}
layout_homogeneous_horizontal {
@@ -586,7 +586,7 @@ class Evas_Box (Evas_Smart_Clipped)
return Evas_Object_Box_Option *;
params {
@in Evas_Object *child;
- @in const Evas_Object *reference;
+ @in const(Evas_Object)* reference;
}
}
insert_at {
@@ -611,7 +611,7 @@ class Evas_Box (Evas_Smart_Clipped)
return Evas_Object_Box_Option *;
params {
@in Evas_Object *child @nonull; /*@ A child Evas object to be made a member of @p o */
- @in unsigned int pos; /*@ The numeric position (starting from @c 0) to place the
+ @in uint pos; /*@ The numeric position (starting from @c 0) to place the
new child object at */
}
}
diff --git a/src/lib/evas/canvas/evas_image.eo b/src/lib/evas/canvas/evas_image.eo
index a3513e28a9..a689cbd047 100644
--- a/src/lib/evas/canvas/evas_image.eo
+++ b/src/lib/evas/canvas/evas_image.eo
@@ -398,7 +398,7 @@ class Evas_Image (Evas_Object)
/*@ Get the video surface capabilities to a given image of the canvas */
}
values {
- unsigned int caps; /*@ in */
+ uint caps; /*@ in */
}
}
load_orientation {
@@ -474,8 +474,8 @@ class Evas_Image (Evas_Object)
interested in: they'll be ignored by the function. */
}
values {
- const char *file; /*@ The image file path. */
- const char *key; /*@ The image key in @p file (if its an Eet one), or @c
+ const(char)* file; /*@ The image file path. */
+ const(char)* key; /*@ The image key in @p file (if its an Eet one), or @c
NULL, otherwise. */
}
}
@@ -788,8 +788,8 @@ class Evas_Image (Evas_Object)
@since 1.10 */
}
values {
- const Eina_File *f; /*@ The mmaped file */
- const char *key; /*@ The image key in @p file (if its an Eet one), or @c
+ const(Eina_File)* f; /*@ The mmaped file */
+ const(char)* key; /*@ The image key in @p file (if its an Eet one), or @c
NULL, otherwise. */
}
}
@@ -1042,7 +1042,7 @@ class Evas_Image (Evas_Object)
legacy null;
}
values {
- const char* program; /*@ The program code, as defined
+ const(char)* program; /*@ The program code, as defined
by the @ref evasfiltersref "Evas filters script language".
Pass NULL to remove the former program and switch back
to the standard text effect
@@ -1063,7 +1063,7 @@ class Evas_Image (Evas_Object)
legacy null;
}
values {
- const char* name; /*@ Object name as used in the program code */
+ const(char)* name; /*@ Object name as used in the program code */
Eo* eobj; /*@ Eo object to use through proxy rendering */
}
}
@@ -1142,11 +1142,11 @@ class Evas_Image (Evas_Object)
const;
return Eina_Bool;
params {
- @in const char *file @nonull; /*@ The filename to be used to save the image (extension
+ @in const(char)* file @nonull; /*@ The filename to be used to save the image (extension
obligatory). */
- @in const char *key; /*@ The image key in the file (if an Eet one), or @c NULL,
+ @in const(char)* key; /*@ The image key in the file (if an Eet one), or @c NULL,
otherwise. */
- @in const char *flags; /*@ String containing the flags to be used (@c NULL for
+ @in const(char)* flags; /*@ String containing the flags to be used (@c NULL for
none). */
}
}
diff --git a/src/lib/evas/canvas/evas_object.eo b/src/lib/evas/canvas/evas_object.eo
index 95bf564808..8cdeb24c49 100644
--- a/src/lib/evas/canvas/evas_object.eo
+++ b/src/lib/evas/canvas/evas_object.eo
@@ -121,7 +121,7 @@ abstract Evas_Object (Eo_Base, Evas_Common_Interface)
See the full @ref Example_Evas_Object_Manipulation "example". */
}
values {
- const char *type; /*@ in */
+ const(char)* type; /*@ in */
}
}
size_hint_min {
@@ -312,7 +312,7 @@ abstract Evas_Object (Eo_Base, Evas_Common_Interface)
@see evas_object_map_set() */
}
values {
- const Evas_Map *map; /*@ new map to use */
+ const(Evas_Map)* map; /*@ new map to use */
}
}
size_hint_aspect {
@@ -664,7 +664,7 @@ abstract Evas_Object (Eo_Base, Evas_Common_Interface)
See the full @ref Example_Evas_Events "example". */
}
values {
- const char *name; /*@ The given name. */
+ const(char)* name; /*@ The given name. */
}
}
scale {
@@ -1180,7 +1180,7 @@ abstract Evas_Object (Eo_Base, Evas_Common_Interface)
evas_object_show(obj_tmp);
}
@endcode */
- return const Eina_List * @warn_unused;
+ return const(Eina_List)* @warn_unused;
}
}
smart_parent {
@@ -1288,7 +1288,7 @@ abstract Evas_Object (Eo_Base, Evas_Common_Interface)
return Eina_Bool @warn_unused;
params {
- @in const char *keyname @nonull; /*@ the key to request events for. */
+ @in const(char)* keyname @nonull; /*@ the key to request events for. */
@in Evas_Modifier_Mask modifiers; /*@ a mask of modifiers that must be present to
trigger the event. */
@in Evas_Modifier_Mask not_modifiers; /*@ a mask of modifiers that must @b not be present
@@ -1393,7 +1393,7 @@ abstract Evas_Object (Eo_Base, Evas_Common_Interface)
const;
return Eina_Bool @warn_unused;
params {
- @in const char *type @nonull; /*@ The @b name (type) of the smart class to check for */
+ @in const(char)* type @nonull; /*@ The @b name (type) of the smart class to check for */
}
}
name_child_find {
@@ -1416,7 +1416,7 @@ abstract Evas_Object (Eo_Base, Evas_Common_Interface)
const;
return Evas_Object * @warn_unused;
params {
- @in const char *name; /*@ The given name. */
+ @in const(char)* name; /*@ The given name. */
@in int recurse; /*@ Set to the number of child levels to recurse (0 == don't recurse, 1 == only look at the children of @p obj or their immediate children, but no further etc.). */
}
}
@@ -1440,7 +1440,7 @@ abstract Evas_Object (Eo_Base, Evas_Common_Interface)
@see evas_focus_get */
params {
- @in const char *keyname @nonull; /*@ the key the grab is set for. */
+ @in const(char)* keyname @nonull; /*@ the key the grab is set for. */
@in Evas_Modifier_Mask modifiers; /*@ a mask of modifiers that must be present to
trigger the event. */
@in Evas_Modifier_Mask not_modifiers; /*@ a mask of modifiers that must not not be
@@ -1506,7 +1506,7 @@ abstract Evas_Object (Eo_Base, Evas_Common_Interface)
const;
return Eina_Bool @warn_unused;
params {
- @in const char *type @nonull; /*@ The type (name string) to check for. Must be the name */
+ @in const(char)* type @nonull; /*@ The type (name string) to check for. Must be the name */
}
}
}
diff --git a/src/lib/evas/canvas/evas_object_smart.eo b/src/lib/evas/canvas/evas_object_smart.eo
index 3d60891093..8ca9ef9f6a 100644
--- a/src/lib/evas/canvas/evas_object_smart.eo
+++ b/src/lib/evas/canvas/evas_object_smart.eo
@@ -159,7 +159,7 @@ class Evas_Object_Smart (Evas_Object, Evas_Signal_Interface)
return Eina_Bool;
params {
- @in const Evas_Smart_Cb_Description *descriptions; /*@ @c NULL terminated array with
+ @in const(Evas_Smart_Cb_Description)* descriptions; /*@ @c NULL terminated array with
#Evas_Smart_Cb_Description descriptions. Array elements won't be
modified at run time, but references to them and their contents
will be made, so this array should be kept alive during the whole
@@ -190,15 +190,15 @@ class Evas_Object_Smart (Evas_Object, Evas_Signal_Interface)
const;
params {
- @out const Evas_Smart_Cb_Description **class_descriptions; /*@ Where to store class callbacks
+ @out const(Evas_Smart_Cb_Description)** class_descriptions; /*@ Where to store class callbacks
descriptions array, if any is known. If no descriptions are
known, @c NULL is returned */
- @out unsigned int class_count; /*@ Returns how many class callbacks descriptions
+ @out uint class_count; /*@ Returns how many class callbacks descriptions
are known. */
- @out const Evas_Smart_Cb_Description **instance_descriptions; /*@ Where to store instance callbacks
+ @out const(Evas_Smart_Cb_Description)** instance_descriptions; /*@ Where to store instance callbacks
descriptions array, if any is known. If no descriptions are
known, @c NULL is returned. */
- @out unsigned int instance_count; /*@ Returns how many instance callbacks
+ @out uint instance_count; /*@ Returns how many instance callbacks
descriptions are known. */
}
}
@@ -228,14 +228,14 @@ class Evas_Object_Smart (Evas_Object, Evas_Signal_Interface)
const;
params {
- @in const char *name @nonull; /*@ name of desired callback, must @b not be @c NULL. The
+ @in const(char)* name @nonull; /*@ name of desired callback, must @b not be @c NULL. The
search have a special case for @a name being the same
pointer as registered with Evas_Smart_Cb_Description, one
can use it to avoid excessive use of strcmp(). */
- @out const Evas_Smart_Cb_Description *class_description; /*@ pointer to return class description or
+ @out const(Evas_Smart_Cb_Description)* class_description; /*@ pointer to return class description or
@c NULL if not found. If parameter is @c NULL, no search will
be done on class descriptions. */
- @out const Evas_Smart_Cb_Description *instance_description; /*@ pointer to return instance description */
+ @out const(Evas_Smart_Cb_Description)* instance_description; /*@ pointer to return instance description */
}
}
hide {
diff --git a/src/lib/evas/canvas/evas_table.eo b/src/lib/evas/canvas/evas_table.eo
index dd5dc4f241..183e535025 100644
--- a/src/lib/evas/canvas/evas_table.eo
+++ b/src/lib/evas/canvas/evas_table.eo
@@ -141,8 +141,8 @@ class Evas_Table (Evas_Smart_Clipped)
@note This does not take into account col/row spanning*/
}
keys {
- unsigned short col;
- unsigned short row;
+ ushort col;
+ ushort row;
}
values {
Evas_Object *child;
@@ -195,10 +195,10 @@ class Evas_Table (Evas_Smart_Clipped)
return Eina_Bool;
params {
@in Evas_Object *child; /*@ The child object to add. */
- @out unsigned short col; /*@ pointer to store relative-horizontal position to place child. */
- @out unsigned short row; /*@ pointer to store relative-vertical position to place child. */
- @out unsigned short colspan; /*@ pointer to store how many relative-horizontal position to use for this child. */
- @out unsigned short rowspan; /*@ pointer to store how many relative-vertical position to use for this child. */
+ @out ushort col; /*@ pointer to store relative-horizontal position to place child. */
+ @out ushort row; /*@ pointer to store relative-vertical position to place child. */
+ @out ushort colspan; /*@ pointer to store how many relative-horizontal position to use for this child. */
+ @out ushort rowspan; /*@ pointer to store how many relative-vertical position to use for this child. */
}
}
pack {
@@ -216,10 +216,10 @@ class Evas_Table (Evas_Smart_Clipped)
return Eina_Bool;
params {
@in Evas_Object *child @nonull; /*@ The child object to add. */
- @in unsigned short col; /*@ relative-horizontal position to place child. */
- @in unsigned short row; /*@ relative-vertical position to place child. */
- @in unsigned short colspan; /*@ how many relative-horizontal position to use for this child. */
- @in unsigned short rowspan; /*@ how many relative-vertical position to use for this child. */
+ @in ushort col; /*@ relative-horizontal position to place child. */
+ @in ushort row; /*@ relative-vertical position to place child. */
+ @in ushort colspan; /*@ how many relative-horizontal position to use for this child. */
+ @in ushort rowspan; /*@ how many relative-vertical position to use for this child. */
}
}
unpack {
diff --git a/src/lib/evas/canvas/evas_text.eo b/src/lib/evas/canvas/evas_text.eo
index 4356ae8421..bb31f1a7ca 100644
--- a/src/lib/evas/canvas/evas_text.eo
+++ b/src/lib/evas/canvas/evas_text.eo
@@ -24,7 +24,7 @@ class Evas_Text (Evas_Object)
@see evas_object_text_font_get() for more details */
}
values {
- const char* font_source; /*@ The font file's path. */
+ const(char)* font_source; /*@ The font file's path. */
}
}
shadow_color {
@@ -113,7 +113,7 @@ class Evas_Text (Evas_Object)
@since 1.1 */
}
values {
- const char* delim; /*@ A null terminated string of delimiters, e.g ",|". */
+ const(char)* delim; /*@ A null terminated string of delimiters, e.g ",|". */
}
}
outline_color {
@@ -165,7 +165,7 @@ class Evas_Text (Evas_Object)
@see evas_object_text_text_set() */
}
values {
- const char* text; /*@ Text string to display on it. */
+ const(char)* text; /*@ Text string to display on it. */
}
}
glow2_color {
@@ -222,7 +222,7 @@ class Evas_Text (Evas_Object)
@see evas_object_text_font_set() */
}
values {
- const char* font; /*@ The font family name or filename. */
+ const(char)* font; /*@ The font family name or filename. */
Evas_Font_Size size; /*@ The font size, in points. */
}
}
@@ -312,7 +312,7 @@ class Evas_Text (Evas_Object)
legacy null;
}
values {
- const char* program; /*@ The program code, as defined
+ const(char)* program; /*@ The program code, as defined
by the @ref evasfiltersref "Evas filters script language".
Pass NULL to remove the former program and switch back
to the standard text effect */
@@ -332,7 +332,7 @@ class Evas_Text (Evas_Object)
legacy null;
}
values {
- const char* name; /*@ Object name as used in the program code */
+ const(char)* name; /*@ Object name as used in the program code */
Eo* eobj; /*@ Eo object to use through proxy rendering */
}
}
diff --git a/src/lib/evas/canvas/evas_textblock.eo b/src/lib/evas/canvas/evas_textblock.eo
index e464512f9c..b7882985b5 100644
--- a/src/lib/evas/canvas/evas_textblock.eo
+++ b/src/lib/evas/canvas/evas_textblock.eo
@@ -19,7 +19,7 @@ class Evas_Textblock (Evas_Object)
@return the markup text of the object. */
}
values {
- const char *text; /*@ the markup text to use. */
+ const(char)* text; /*@ the markup text to use. */
}
}
valign {
@@ -69,7 +69,7 @@ class Evas_Textblock (Evas_Object)
@since 1.1 */
}
values {
- const char* delim; /*@ A null terminated string of delimiters, e.g ",|". */
+ const(char)* delim; /*@ A null terminated string of delimiters, e.g ",|". */
}
}
replace_char {
@@ -78,7 +78,7 @@ class Evas_Textblock (Evas_Object)
@brief Set the "replacement character" to use for the given textblock object. */
}
values {
- const char *ch; /*@ The charset name. */
+ const(char)* ch; /*@ The charset name. */
}
}
legacy_newline {
@@ -113,7 +113,7 @@ class Evas_Textblock (Evas_Object)
@return the style of the object. */
}
values {
- const Evas_Textblock_Style *ts; /*@ the style to set. */
+ const(Evas_Textblock_Style)* ts; /*@ the style to set. */
}
}
node_format_first {
@@ -122,7 +122,7 @@ class Evas_Textblock (Evas_Object)
legacy evas_textblock_node_format_first_get;
}
values {
- const Evas_Object_Textblock_Node_Format *format;
+ const(Evas_Object_Textblock_Node_Format)* format;
}
}
size_formatted {
@@ -156,7 +156,7 @@ class Evas_Textblock (Evas_Object)
legacy evas_textblock_node_format_last_get;
}
values {
- const Evas_Object_Textblock_Node_Format *format;
+ const(Evas_Object_Textblock_Node_Format)* format;
}
}
cursor {
@@ -227,7 +227,7 @@ class Evas_Textblock (Evas_Object)
@return Replacement character or @c NULL. */
- return const char *;
+ return const(char)*;
}
style_user_pop {
/*@
@@ -254,9 +254,9 @@ class Evas_Textblock (Evas_Object)
/*@ No description supplied by the EAPI. */
const;
legacy evas_textblock_node_format_list_get;
- return const Eina_List *;
+ return const(Eina_List)*;
params {
- @in const char *anchor;
+ @in const(char)* anchor;
}
}
style_user_peek {
@@ -268,7 +268,7 @@ class Evas_Textblock (Evas_Object)
@since 1.2 */
const;
- return const Evas_Textblock_Style *;
+ return const(Evas_Textblock_Style)*;
}
node_format_remove_pair {
/*@ Remove a format node and its match. */
diff --git a/src/lib/evas/canvas/evas_textgrid.eo b/src/lib/evas/canvas/evas_textgrid.eo
index f2ca8e4685..d436400a84 100644
--- a/src/lib/evas/canvas/evas_textgrid.eo
+++ b/src/lib/evas/canvas/evas_textgrid.eo
@@ -37,7 +37,7 @@ class Evas_Textgrid (Evas_Object)
@since 1.7 */
}
values {
- const char *font_source; /*@ The font file's path. */
+ const(char)* font_source; /*@ The font file's path. */
}
}
supported_font_styles {
@@ -90,7 +90,7 @@ class Evas_Textgrid (Evas_Object)
@since 1.7 */
}
values {
- const char *font_name; /*@ The font (family) name. */
+ const(char)* font_name; /*@ The font (family) name. */
Evas_Font_Size font_size; /*@ The font size, in points. */
}
}
@@ -195,7 +195,7 @@ class Evas_Textgrid (Evas_Object)
params {
@in int y; /*@ The row index of the grid. */
- @in const Evas_Textgrid_Cell *row; /*@ The string as a sequence of #Evas_Textgrid_Cell. */
+ @in const(Evas_Textgrid_Cell)* row; /*@ The string as a sequence of #Evas_Textgrid_Cell. */
}
}
cellrow_get {
diff --git a/src/tests/eolian/data/complex_type.eo b/src/tests/eolian/data/complex_type.eo
index 341091afbb..a64f6d211e 100644
--- a/src/tests/eolian/data/complex_type.eo
+++ b/src/tests/eolian/data/complex_type.eo
@@ -2,21 +2,21 @@ class Complex_Type {
properties {
a {
set {
- return @own Eina_List * <Eina_Array*< @own Eo * *>>;
+ return @own(Eina_List*)<Eina_Array*<@own(Eo**)>>;
}
get {
}
values {
- @own Eina_List *<int> value;
+ @own(Eina_List*)<int> value;
}
}
}
methods {
foo {
params {
- @own char *buf;
+ @own(char*) buf;
}
- return @own Eina_List *<Eina_Stringshare *>; /*@ comment for method return */
+ return @own(Eina_List*)<Eina_Stringshare *>; /*@ comment for method return */
}
}
}
diff --git a/src/tests/eolian/data/object_impl.eo b/src/tests/eolian/data/object_impl.eo
index 2bedbfd866..5a5598d904 100644
--- a/src/tests/eolian/data/object_impl.eo
+++ b/src/tests/eolian/data/object_impl.eo
@@ -18,10 +18,10 @@ class Object (Base) {
get {
}
keys {
- const char *part;
+ const(char)* part;
}
values {
- @own Eina_List *<int> value;
+ @own(Eina_List*)<int> value;
}
}
b {
@@ -31,7 +31,7 @@ class Object (Base) {
/* set as virtual pure - no implementation expected */
}
values {
- @own Eina_List *<int> value;
+ @own(Eina_List*)<int> value;
}
}
}
@@ -49,7 +49,7 @@ class Object (Base) {
/*@ comment foo */
params {
@in int a;
- @in const char *b;
+ @in const(char)* b;
}
const;
}
diff --git a/src/tests/eolian/data/object_impl_add.eo b/src/tests/eolian/data/object_impl_add.eo
index b4d6737bc1..5b4bad7089 100644
--- a/src/tests/eolian/data/object_impl_add.eo
+++ b/src/tests/eolian/data/object_impl_add.eo
@@ -7,7 +7,7 @@ class Object (Base) {
/* set as virtual pure - no implementation expected */
}
values {
- @own Eina_List *<int> value;
+ @own(Eina_List*)<int> value;
}
}
}
diff --git a/src/tests/eolian/data/typedef.eo b/src/tests/eolian/data/typedef.eo
index e2dfbf4474..4ee614eee1 100644
--- a/src/tests/eolian/data/typedef.eo
+++ b/src/tests/eolian/data/typedef.eo
@@ -1,5 +1,5 @@
type Evas_Coord: int; /* Simple type definition */
-type List_Objects: @own Eina_List * < Eo *>; /* A little more complex */
+type List_Objects: @own(Eina_List*)< Eo *>; /* A little more complex */
class Dummy {
methods {
@@ -7,7 +7,7 @@ class Dummy {
params {
int idx;
}
- return @own char *; /*@ comment for method return */
+ return @own(char*); /*@ comment for method return */
}
}
}
diff --git a/src/tests/eolian/eolian_parsing.c b/src/tests/eolian/eolian_parsing.c
index 6e09fbc2c8..db177890c5 100644
--- a/src/tests/eolian/eolian_parsing.c
+++ b/src/tests/eolian/eolian_parsing.c
@@ -217,9 +217,9 @@ END_TEST
START_TEST(eolian_typedef)
{
- Eolian_Type types_list = NULL;
+ Eolian_Type type = NULL;
const char *type_name = NULL;
- Eina_Bool own = EINA_FALSE;
+ Eina_Iterator *iter = NULL;
Eolian_Class class;
eolian_init();
@@ -231,19 +231,27 @@ START_TEST(eolian_typedef)
fail_if(!eolian_class_function_find_by_name(class, "foo", EOLIAN_METHOD));
/* Basic type */
- fail_if(!(types_list = eolian_type_find_by_alias("Evas_Coord")));
- fail_if(eolian_type_information_get(types_list, &type_name, &own));
+ fail_if(!(type = eolian_type_find_by_alias("Evas_Coord")));
+ fail_if(!(type_name = eolian_type_name_get(type)));
+ fail_if(eolian_type_is_own(type));
+ fail_if(eolian_type_is_const(type));
+ fail_if(eolian_type_base_type_get(type));
fail_if(strcmp(type_name, "int"));
- fail_if(own != EINA_FALSE);
+ eina_stringshare_del(type_name);
/* Complex type */
- fail_if(!(types_list = eolian_type_find_by_alias("List_Objects")));
- fail_if(!(types_list = eolian_type_information_get(types_list, &type_name, &own)));
+ fail_if(!(type = eolian_type_find_by_alias("List_Objects")));
+ fail_if(!(type_name = eolian_type_c_type_get(type)));
+ fail_if(!eolian_type_is_own(type));
fail_if(strcmp(type_name, "Eina_List *"));
- fail_if(own != EINA_TRUE);
- fail_if(eolian_type_information_get(types_list, &type_name, &own));
+ eina_stringshare_del(type_name);
+ fail_if(!(iter = eolian_type_subtypes_list_get(type)));
+ fail_if(!eina_iterator_next(iter, (void**)&type));
+ fail_if(!(type_name = eolian_type_c_type_get(type)));
fail_if(strcmp(type_name, "Eo *"));
- fail_if(own != EINA_FALSE);
+ fail_if(eolian_type_is_own(type));
+ eina_stringshare_del(type_name);
+ eina_iterator_free(iter);
eolian_shutdown();
}
@@ -254,9 +262,9 @@ START_TEST(eolian_complex_type)
Eolian_Function fid = NULL;
Eolian_Function_Parameter param = NULL;
const Eina_List *params_list = NULL;
- Eolian_Type types_list = NULL;
+ Eolian_Type type = NULL;
const char *type_name = NULL;
- Eina_Bool own = EINA_FALSE;
+ Eina_Iterator *iter = NULL;
Eolian_Class class;
eolian_init();
@@ -266,47 +274,67 @@ START_TEST(eolian_complex_type)
/* Properties return type */
fail_if(!(fid = eolian_class_function_find_by_name(class, "a", EOLIAN_PROPERTY)));
- fail_if(!(types_list = eolian_function_return_types_list_get(fid, EOLIAN_PROP_SET)));
- fail_if(!(types_list = eolian_type_information_get(types_list, &type_name, &own)));
+ fail_if(!(type = eolian_function_return_type_get(fid, EOLIAN_PROP_SET)));
+ fail_if(!(type_name = eolian_type_c_type_get(type)));
+ fail_if(!eolian_type_is_own(type));
fail_if(strcmp(type_name, "Eina_List *"));
- fail_if(own != EINA_TRUE);
- fail_if(!(types_list = eolian_type_information_get(types_list, &type_name, &own)));
+ eina_stringshare_del(type_name);
+ fail_if(!(iter = eolian_type_subtypes_list_get(type)));
+ fail_if(!eina_iterator_next(iter, (void**)&type));
+ fail_if(!(type_name = eolian_type_c_type_get(type)));
+ fail_if(eolian_type_is_own(type));
fail_if(strcmp(type_name, "Eina_Array *"));
- fail_if(own != EINA_FALSE);
- fail_if(eolian_type_information_get(types_list, &type_name, &own));
+ eina_stringshare_del(type_name);
+ eina_iterator_free(iter);
+ fail_if(!(iter = eolian_type_subtypes_list_get(type)));
+ fail_if(!eina_iterator_next(iter, (void**)&type));
+ fail_if(!(type_name = eolian_type_c_type_get(type)));
+ fail_if(!eolian_type_is_own(type));
fail_if(strcmp(type_name, "Eo **"));
- fail_if(own != EINA_TRUE);
+ eina_stringshare_del(type_name);
+ eina_iterator_free(iter);
/* Properties parameter type */
fail_if(!(params_list = eolian_parameters_list_get(fid)));
fail_if(eina_list_count(params_list) != 1);
fail_if(!(param = eina_list_nth(params_list, 0)));
fail_if(strcmp(eolian_parameter_name_get(param), "value"));
- fail_if(!(types_list = eolian_parameter_types_list_get(param)));
- fail_if(!(types_list = eolian_type_information_get(types_list, &type_name, &own)));
+ fail_if(!(type = eolian_parameter_type_get(param)));
+ fail_if(!(type_name = eolian_type_c_type_get(type)));
+ fail_if(!eolian_type_is_own(type));
fail_if(strcmp(type_name, "Eina_List *"));
- fail_if(own != EINA_TRUE);
- fail_if(eolian_type_information_get(types_list, &type_name, &own));
+ eina_stringshare_del(type_name);
+ fail_if(!(iter = eolian_type_subtypes_list_get(type)));
+ fail_if(!eina_iterator_next(iter, (void**)&type));
+ fail_if(!(type_name = eolian_type_c_type_get(type)));
+ fail_if(eolian_type_is_own(type));
fail_if(strcmp(type_name, "int"));
- fail_if(own != EINA_FALSE);
+ eina_stringshare_del(type_name);
+ eina_iterator_free(iter);
/* Methods return type */
fail_if(!(fid = eolian_class_function_find_by_name(class, "foo", EOLIAN_METHOD)));
- fail_if(!(types_list = eolian_function_return_types_list_get(fid, EOLIAN_METHOD)));
- fail_if(!(types_list = eolian_type_information_get(types_list, &type_name, &own)));
+ fail_if(!(type = eolian_function_return_type_get(fid, EOLIAN_METHOD)));
+ fail_if(!(type_name = eolian_type_c_type_get(type)));
+ fail_if(!eolian_type_is_own(type));
fail_if(strcmp(type_name, "Eina_List *"));
- fail_if(own != EINA_TRUE);
- fail_if(eolian_type_information_get(types_list, &type_name, &own));
+ eina_stringshare_del(type_name);
+ fail_if(!(iter = eolian_type_subtypes_list_get(type)));
+ fail_if(!eina_iterator_next(iter, (void**)&type));
+ fail_if(!(type_name = eolian_type_c_type_get(type)));
+ fail_if(eolian_type_is_own(type));
fail_if(strcmp(type_name, "Eina_Stringshare *"));
- fail_if(own != EINA_FALSE);
+ eina_stringshare_del(type_name);
+ eina_iterator_free(iter);
/* Methods parameter type */
fail_if(!(params_list = eolian_parameters_list_get(fid)));
fail_if(eina_list_count(params_list) != 1);
fail_if(!(param = eina_list_nth(params_list, 0)));
fail_if(strcmp(eolian_parameter_name_get(param), "buf"));
- fail_if(!(types_list = eolian_parameter_types_list_get(param)));
- fail_if(eolian_type_information_get(types_list, &type_name, &own));
+ fail_if(!(type = eolian_parameter_type_get(param)));
+ fail_if(!(type_name = eolian_type_c_type_get(type)));
+ fail_if(!eolian_type_is_own(type));
fail_if(strcmp(type_name, "char *"));
- fail_if(own != EINA_TRUE);
+ eina_stringshare_del(type_name);
eolian_shutdown();
}
@@ -345,11 +373,13 @@ END_TEST
START_TEST(eolian_simple_parsing)
{
Eolian_Function fid = NULL;
+ Eolian_Type ptypep = NULL;
const char *string = NULL, *ptype = NULL, *pname = NULL;
Eolian_Parameter_Dir dir = EOLIAN_IN_PARAM;
const Eina_List *list = NULL;
Eolian_Function_Parameter param = NULL;
Eolian_Class class;
+ Eolian_Type tp;
eolian_init();
/* Parsing */
@@ -377,9 +407,9 @@ START_TEST(eolian_simple_parsing)
string = eolian_function_description_get(fid, EOLIAN_COMMENT_GET);
fail_if(string);
/* Set return */
- string = eolian_function_return_type_get(fid, EOLIAN_PROP_SET);
- fail_if(!string);
- fail_if(strcmp(string, "Eina_Bool"));
+ tp = eolian_function_return_type_get(fid, EOLIAN_PROP_SET);
+ fail_if(!tp);
+ fail_if(strcmp(eolian_type_name_get(tp), "Eina_Bool"));
string = eolian_function_return_dflt_value_get(fid, EOLIAN_PROP_SET);
fail_if(!string);
fail_if(strcmp(string, "EINA_TRUE"));
@@ -387,8 +417,8 @@ START_TEST(eolian_simple_parsing)
fail_if(!string);
fail_if(strcmp(string, "comment for property set return"));
/* Get return */
- string = eolian_function_return_type_get(fid, EOLIAN_PROP_GET);
- fail_if(string);
+ tp = eolian_function_return_type_get(fid, EOLIAN_PROP_GET);
+ fail_if(tp);
string = eolian_function_return_comment_get(fid, EOLIAN_PROP_GET);
fail_if(string);
@@ -397,8 +427,8 @@ START_TEST(eolian_simple_parsing)
fail_if(!(list = eolian_property_values_list_get(fid)));
fail_if(eina_list_count(list) != 1);
fail_if(!(param = eina_list_data_get(list)));
- eolian_parameter_information_get(param, NULL, &ptype, &pname, &string);
- fail_if(strcmp(ptype, "int"));
+ eolian_parameter_information_get(param, NULL, &ptypep, &pname, &string);
+ fail_if(strcmp(eolian_type_name_get(ptypep), "int"));
fail_if(strcmp(pname, "value"));
fail_if(strcmp(string, "Value description"));
@@ -408,9 +438,12 @@ START_TEST(eolian_simple_parsing)
fail_if(!string);
fail_if(strcmp(string, "comment foo"));
/* Function return */
- string = eolian_function_return_type_get(fid, EOLIAN_METHOD);
+ tp = eolian_function_return_type_get(fid, EOLIAN_METHOD);
+ fail_if(!tp);
+ string = eolian_type_c_type_get(tp);
fail_if(!string);
fail_if(strcmp(string, "char *"));
+ eina_stringshare_del(string);
string = eolian_function_return_dflt_value_get(fid, EOLIAN_METHOD);
fail_if(!string);
fail_if(strcmp(string, "NULL"));
@@ -422,21 +455,23 @@ START_TEST(eolian_simple_parsing)
fail_if(!(list = eolian_parameters_list_get(fid)));
fail_if(eina_list_count(list) != 3);
fail_if(!(param = eina_list_nth(list, 0)));
- eolian_parameter_information_get(param, &dir, &ptype, &pname, &string);
+ eolian_parameter_information_get(param, &dir, &ptypep, &pname, &string);
fail_if(dir != EOLIAN_IN_PARAM);
- fail_if(strcmp(ptype, "int"));
+ fail_if(strcmp(eolian_type_name_get(ptypep), "int"));
fail_if(strcmp(pname, "a"));
fail_if(!string || strcmp(string, "a"));
fail_if(!(param = eina_list_nth(list, 1)));
- eolian_parameter_information_get(param, &dir, &ptype, &pname, &string);
+ eolian_parameter_information_get(param, &dir, &ptypep, &pname, &string);
fail_if(dir != EOLIAN_INOUT_PARAM);
+ ptype = eolian_type_c_type_get(ptypep);
fail_if(strcmp(ptype, "char *"));
+ eina_stringshare_del(ptype);
fail_if(strcmp(pname, "b"));
fail_if(string);
fail_if(!(param = eina_list_nth(list, 2)));
- eolian_parameter_information_get(param, &dir, &ptype, &pname, &string);
+ eolian_parameter_information_get(param, &dir, &ptypep, &pname, &string);
fail_if(dir != EOLIAN_OUT_PARAM);
- fail_if(strcmp(ptype, "double"));
+ fail_if(strcmp(eolian_type_name_get(ptypep), "double"));
fail_if(strcmp(pname, "c"));
fail_if(string);