q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=67bc32d9aced9f486d703db2ed883f5958a1a8fb

commit 67bc32d9aced9f486d703db2ed883f5958a1a8fb
Author: Daniel Kolesa <d.kol...@osg.samsung.com>
Date:   Thu May 25 15:15:04 2017 +0200

    eolian: pass unit to enum get by name
---
 src/bin/eolian/docs.c              |  2 +-
 src/bindings/luajit/eolian.lua     |  6 +++---
 src/lib/eolian/Eolian.h            |  3 ++-
 src/lib/eolian/database_expr.c     |  3 ++-
 src/lib/eolian/database_type_api.c |  3 ++-
 src/lib/eolian/eolian_database.c   |  3 ++-
 src/tests/eolian/eolian_parsing.c  | 10 +++++-----
 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."));

-- 


Reply via email to