forked from enlightenment/efl
eolian: pass unit to enum get by name
This commit is contained in:
parent
9c2dae3531
commit
67bc32d9ac
|
@ -53,7 +53,7 @@ _generate_ref(const Eolian_Unit *src, const char *refn, Eina_Strbuf *wbuf,
|
|||
return;
|
||||
}
|
||||
|
||||
tp = eolian_typedecl_enum_get_by_name(bname);
|
||||
tp = eolian_typedecl_enum_get_by_name(src, bname);
|
||||
if (tp)
|
||||
{
|
||||
const Eolian_Enum_Type_Field *efl = eolian_typedecl_enum_field_get(tp, sfx + 1);
|
||||
|
|
|
@ -299,7 +299,7 @@ ffi.cdef [[
|
|||
const char *eolian_class_c_get_function_name_get(const Eolian_Class *klass);
|
||||
const Eolian_Typedecl *eolian_typedecl_alias_get_by_name(const Eolian_Unit *unit, const char *name);
|
||||
const Eolian_Typedecl *eolian_typedecl_struct_get_by_name(const Eolian_Unit *unit, const char *name);
|
||||
const Eolian_Typedecl *eolian_typedecl_enum_get_by_name(const char *name);
|
||||
const Eolian_Typedecl *eolian_typedecl_enum_get_by_name(const Eolian_Unit *unit, const char *name);
|
||||
Eina_Iterator *eolian_typedecl_aliases_get_by_file(const char *fname);
|
||||
Eina_Iterator *eolian_typedecl_structs_get_by_file(const char *fname);
|
||||
Eina_Iterator *eolian_typedecl_enums_get_by_file(const char *fname);
|
||||
|
@ -1154,8 +1154,8 @@ M.typedecl_struct_get_by_name = function(unit, name)
|
|||
return v
|
||||
end
|
||||
|
||||
M.typedecl_enum_get_by_name = function(name)
|
||||
local v = eolian.eolian_typedecl_enum_get_by_name(name)
|
||||
M.typedecl_enum_get_by_name = function(unit, name)
|
||||
local v = eolian.eolian_typedecl_enum_get_by_name(unit, name)
|
||||
if v == nil then return nil end
|
||||
return v
|
||||
end
|
||||
|
|
|
@ -1392,12 +1392,13 @@ EAPI const Eolian_Typedecl *eolian_typedecl_struct_get_by_name(const Eolian_Unit
|
|||
/*
|
||||
* @brief Get an enum declaration by name. Supports namespaces.
|
||||
*
|
||||
* @param[in] unit the unit to look in
|
||||
* @param[in] name the name of the struct
|
||||
* @return the struct or NULL
|
||||
*
|
||||
* @ingroup Eolian
|
||||
*/
|
||||
EAPI const Eolian_Typedecl *eolian_typedecl_enum_get_by_name(const char *name);
|
||||
EAPI const Eolian_Typedecl *eolian_typedecl_enum_get_by_name(const Eolian_Unit *unit, const char *name);
|
||||
|
||||
/*
|
||||
* @brief Get an iterator to all aliases contained in a file.
|
||||
|
|
|
@ -523,7 +523,8 @@ eval_exp(const Eolian_Expression *expr, Eolian_Expression_Mask mask,
|
|||
etpd = eolian_type_typedecl_get(etp);
|
||||
}
|
||||
|
||||
if (!etpd) etpd = eolian_typedecl_enum_get_by_name(fulln);
|
||||
/* FIXME: pass unit properly */
|
||||
if (!etpd) etpd = eolian_typedecl_enum_get_by_name(NULL, fulln);
|
||||
if (!etpd || etpd->type != EOLIAN_TYPEDECL_ENUM)
|
||||
{
|
||||
free(fulln);
|
||||
|
|
|
@ -31,7 +31,8 @@ eolian_typedecl_struct_get_by_name(const Eolian_Unit *unit EINA_UNUSED,
|
|||
}
|
||||
|
||||
EAPI const Eolian_Typedecl *
|
||||
eolian_typedecl_enum_get_by_name(const char *name)
|
||||
eolian_typedecl_enum_get_by_name(const Eolian_Unit *unit EINA_UNUSED,
|
||||
const char *name)
|
||||
{
|
||||
if (!_enums) return NULL;
|
||||
Eina_Stringshare *shr = eina_stringshare_add(name);
|
||||
|
|
|
@ -553,7 +553,8 @@ eolian_doc_token_ref_get(const Eolian_Doc_Token *tok, const void **data,
|
|||
}
|
||||
|
||||
/* try an enum field */
|
||||
tpd = eolian_typedecl_enum_get_by_name(name);
|
||||
/* FIXME: pass unit properly */
|
||||
tpd = eolian_typedecl_enum_get_by_name(NULL, name);
|
||||
if (tpd)
|
||||
{
|
||||
const Eolian_Enum_Type_Field *fld = eolian_typedecl_enum_field_get(tpd, suffix);
|
||||
|
|
|
@ -848,7 +848,7 @@ START_TEST(eolian_enum)
|
|||
fail_if(!(class = eolian_class_get_by_name(unit, "Enum")));
|
||||
fail_if(!eolian_class_function_get_by_name(class, "foo", EOLIAN_METHOD));
|
||||
|
||||
fail_if(!(tdl = eolian_typedecl_enum_get_by_name("Foo")));
|
||||
fail_if(!(tdl = eolian_typedecl_enum_get_by_name(unit, "Foo")));
|
||||
|
||||
fail_if(!(field = eolian_typedecl_enum_field_get(tdl, "first")));
|
||||
fail_if(!(exp = eolian_typedecl_enum_field_value_get(field, EINA_FALSE)));
|
||||
|
@ -865,7 +865,7 @@ START_TEST(eolian_enum)
|
|||
fail_if(v.type != EOLIAN_EXPR_INT);
|
||||
fail_if(v.value.i != 15);
|
||||
|
||||
fail_if(!(tdl = eolian_typedecl_enum_get_by_name("Bar")));
|
||||
fail_if(!(tdl = eolian_typedecl_enum_get_by_name(unit, "Bar")));
|
||||
fail_if(strcmp(eolian_typedecl_enum_legacy_prefix_get(tdl), "test"));
|
||||
|
||||
fail_if(!(field = eolian_typedecl_enum_field_get(tdl, "foo")));
|
||||
|
@ -878,7 +878,7 @@ START_TEST(eolian_enum)
|
|||
fail_if(strcmp(cname, "TEST_FOO"));
|
||||
eina_stringshare_del(cname);
|
||||
|
||||
fail_if(!(tdl = eolian_typedecl_enum_get_by_name("Baz")));
|
||||
fail_if(!(tdl = eolian_typedecl_enum_get_by_name(unit, "Baz")));
|
||||
|
||||
fail_if(!(field = eolian_typedecl_enum_field_get(tdl, "flag1")));
|
||||
fail_if(!(exp = eolian_typedecl_enum_field_value_get(field, EINA_FALSE)));
|
||||
|
@ -898,7 +898,7 @@ START_TEST(eolian_enum)
|
|||
fail_if(v.type != EOLIAN_EXPR_INT);
|
||||
fail_if(v.value.i != (1 << 2));
|
||||
|
||||
fail_if(!(tdl = eolian_typedecl_enum_get_by_name("Name.Spaced")));
|
||||
fail_if(!(tdl = eolian_typedecl_enum_get_by_name(unit, "Name.Spaced")));
|
||||
fail_if(!(field = eolian_typedecl_enum_field_get(tdl, "pants")));
|
||||
|
||||
cname = eolian_typedecl_enum_field_c_name_get(field);
|
||||
|
@ -1265,7 +1265,7 @@ START_TEST(eolian_docs)
|
|||
"Another field documentation."));
|
||||
fail_if(eolian_documentation_description_get(doc));
|
||||
|
||||
fail_if(!(tdl = eolian_typedecl_enum_get_by_name("Bar")));
|
||||
fail_if(!(tdl = eolian_typedecl_enum_get_by_name(unit, "Bar")));
|
||||
fail_if(!(doc = eolian_typedecl_documentation_get(tdl)));
|
||||
fail_if(strcmp(eolian_documentation_summary_get(doc),
|
||||
"Docs for enum Bar."));
|
||||
|
|
Loading…
Reference in New Issue