summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@osg.samsung.com>2017-05-25 15:15:04 +0200
committerDaniel Kolesa <d.kolesa@osg.samsung.com>2017-05-30 17:15:54 +0200
commit67bc32d9aced9f486d703db2ed883f5958a1a8fb (patch)
tree5f0bdc1c870c39eed52bbff79d72fe576be69d73
parent9c2dae3531d4dc282a735d5f0705a4eb8af6f4bd (diff)
downloadefl-67bc32d9aced9f486d703db2ed883f5958a1a8fb.tar.gz
eolian: pass unit to enum get by name
-rw-r--r--src/bin/eolian/docs.c2
-rw-r--r--src/bindings/luajit/eolian.lua6
-rw-r--r--src/lib/eolian/Eolian.h3
-rw-r--r--src/lib/eolian/database_expr.c3
-rw-r--r--src/lib/eolian/database_type_api.c3
-rw-r--r--src/lib/eolian/eolian_database.c3
-rw-r--r--src/tests/eolian/eolian_parsing.c10
7 files changed, 17 insertions, 13 deletions
diff --git a/src/bin/eolian/docs.c b/src/bin/eolian/docs.c
index d200c7f458..2a293697c0 100644
--- a/src/bin/eolian/docs.c
+++ b/src/bin/eolian/docs.c
@@ -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);
diff --git a/src/bindings/luajit/eolian.lua b/src/bindings/luajit/eolian.lua
index c1a0fe601d..f20deecbce 100644
--- a/src/bindings/luajit/eolian.lua
+++ b/src/bindings/luajit/eolian.lua
@@ -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
diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h
index 2e29dd9bc4..d5fb437a65 100644
--- a/src/lib/eolian/Eolian.h
+++ b/src/lib/eolian/Eolian.h
@@ -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.
diff --git a/src/lib/eolian/database_expr.c b/src/lib/eolian/database_expr.c
index 1cb252660f..f0510ddc00 100644
--- a/src/lib/eolian/database_expr.c
+++ b/src/lib/eolian/database_expr.c
@@ -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);
diff --git a/src/lib/eolian/database_type_api.c b/src/lib/eolian/database_type_api.c
index b589cb40aa..2261fa7b90 100644
--- a/src/lib/eolian/database_type_api.c
+++ b/src/lib/eolian/database_type_api.c
@@ -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);
diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c
index 5cc260ac86..8b1c1f0bbb 100644
--- a/src/lib/eolian/eolian_database.c
+++ b/src/lib/eolian/eolian_database.c
@@ -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);
diff --git a/src/tests/eolian/eolian_parsing.c b/src/tests/eolian/eolian_parsing.c
index 3d1de47a7a..5f474016c7 100644
--- a/src/tests/eolian/eolian_parsing.c
+++ b/src/tests/eolian/eolian_parsing.c
@@ -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."));