q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=52a0255e38fa483440e9a31e020adff6590ad1f8

commit 52a0255e38fa483440e9a31e020adff6590ad1f8
Author: Daniel Kolesa <d.kol...@osg.samsung.com>
Date:   Thu May 25 14:56:44 2017 +0200

    eolian: pass unit to alias get by name
---
 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/tests/eolian/eolian_parsing.c  | 22 +++++++++++-----------
 5 files changed, 20 insertions(+), 17 deletions(-)

diff --git a/src/bindings/luajit/eolian.lua b/src/bindings/luajit/eolian.lua
index ea4b8ab6d1..d63210bef4 100644
--- a/src/bindings/luajit/eolian.lua
+++ b/src/bindings/luajit/eolian.lua
@@ -297,7 +297,7 @@ ffi.cdef [[
     Eina_Bool eolian_class_ctor_enable_get(const Eolian_Class *klass);
     Eina_Bool eolian_class_dtor_enable_get(const Eolian_Class *klass);
     const char *eolian_class_c_get_function_name_get(const Eolian_Class 
*klass);
-    const Eolian_Typedecl *eolian_typedecl_alias_get_by_name(const char *name);
+    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 char 
*name);
     const Eolian_Typedecl *eolian_typedecl_enum_get_by_name(const char *name);
     Eina_Iterator *eolian_typedecl_aliases_get_by_file(const char *fname);
@@ -1142,8 +1142,8 @@ M.Class = ffi.metatype("Eolian_Class", {
     }
 })
 
-M.typedecl_alias_get_by_name = function(name)
-    local v = eolian.eolian_typedecl_alias_get_by_name(name)
+M.typedecl_alias_get_by_name = function(unit, name)
+    local v = eolian.eolian_typedecl_alias_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 266abed438..7be3182de3 100644
--- a/src/lib/eolian/Eolian.h
+++ b/src/lib/eolian/Eolian.h
@@ -1370,12 +1370,13 @@ EAPI Eina_Stringshare 
*eolian_class_c_data_type_get(const Eolian_Class *klass);
 /*
  * @brief Get an alias type declaration by name. Supports namespaces.
  *
+ * @param[in] unit the unit to look in
  * @param[in] name the name of the alias
  * @return the alias type or NULL
  *
  * @ingroup Eolian
  */
-EAPI const Eolian_Typedecl *eolian_typedecl_alias_get_by_name(const char 
*name);
+EAPI const Eolian_Typedecl *eolian_typedecl_alias_get_by_name(const 
Eolian_Unit *unit, const char *name);
 
 /*
  * @brief Get a struct declaration by name. Supports namespaces.
diff --git a/src/lib/eolian/database_expr.c b/src/lib/eolian/database_expr.c
index 5717f8bffd..1cb252660f 100644
--- a/src/lib/eolian/database_expr.c
+++ b/src/lib/eolian/database_expr.c
@@ -513,7 +513,8 @@ eval_exp(const Eolian_Expression *expr, 
Eolian_Expression_Mask mask,
                 if (!(mask & EOLIAN_MASK_INT))
                   return expr_type_error(expr, EOLIAN_MASK_INT, mask);
 
-                etpd = eolian_typedecl_alias_get_by_name(fulln);
+                /* FIXME: pass unit properly */
+                etpd = eolian_typedecl_alias_get_by_name(NULL, fulln);
                 while (etpd && etpd->type == EOLIAN_TYPEDECL_ALIAS)
                   {
                      const Eolian_Type *etp = 
eolian_typedecl_base_type_get(etpd);
diff --git a/src/lib/eolian/database_type_api.c 
b/src/lib/eolian/database_type_api.c
index 14a50b04c2..8d9a5d3612 100644
--- a/src/lib/eolian/database_type_api.c
+++ b/src/lib/eolian/database_type_api.c
@@ -7,7 +7,8 @@
 #include "eo_lexer.h"
 
 EAPI const Eolian_Typedecl *
-eolian_typedecl_alias_get_by_name(const char *name)
+eolian_typedecl_alias_get_by_name(const Eolian_Unit *unit EINA_UNUSED,
+                                  const char *name)
 {
    if (!_aliases) return NULL;
    Eina_Stringshare *shr = eina_stringshare_add(name);
diff --git a/src/tests/eolian/eolian_parsing.c 
b/src/tests/eolian/eolian_parsing.c
index d81da22fcb..64a89c2615 100644
--- a/src/tests/eolian/eolian_parsing.c
+++ b/src/tests/eolian/eolian_parsing.c
@@ -329,7 +329,7 @@ START_TEST(eolian_typedef)
    fail_if(!eolian_class_function_get_by_name(class, "foo", EOLIAN_METHOD));
 
    /* Basic type */
-   fail_if(!(tdl = eolian_typedecl_alias_get_by_name("Evas.Coord")));
+   fail_if(!(tdl = eolian_typedecl_alias_get_by_name(unit, "Evas.Coord")));
    fail_if(eolian_typedecl_type_get(tdl) != EOLIAN_TYPEDECL_ALIAS);
    fail_if(!(type_name = eolian_typedecl_name_get(tdl)));
    fail_if(strcmp(type_name, "Coord"));
@@ -348,12 +348,12 @@ START_TEST(eolian_typedef)
    fail_if(strcmp(file, "typedef.eo"));
 
    /* Lowest alias base */
-   fail_if(!(tdl = eolian_typedecl_alias_get_by_name("Evas.Coord3")));
+   fail_if(!(tdl = eolian_typedecl_alias_get_by_name(unit, "Evas.Coord3")));
    fail_if(!(type = eolian_typedecl_aliased_base_get(tdl)));
    fail_if(strcmp(eolian_type_name_get(type), "int"));
 
    /* Complex type */
-   fail_if(!(tdl = eolian_typedecl_alias_get_by_name("List_Objects")));
+   fail_if(!(tdl = eolian_typedecl_alias_get_by_name(unit, "List_Objects")));
    fail_if(!(type_name = eolian_typedecl_name_get(tdl)));
    fail_if(strcmp(type_name, "List_Objects"));
    fail_if(!(type = eolian_typedecl_base_type_get(tdl)));
@@ -742,11 +742,11 @@ START_TEST(eolian_extern)
    fail_if(!eolian_class_function_get_by_name(class, "foo", EOLIAN_METHOD));
 
    /* regular type */
-   fail_if(!(tdl = eolian_typedecl_alias_get_by_name("Foo")));
+   fail_if(!(tdl = eolian_typedecl_alias_get_by_name(unit, "Foo")));
    fail_if(eolian_typedecl_is_extern(tdl));
 
    /* extern type */
-   fail_if(!(tdl = eolian_typedecl_alias_get_by_name("Evas.Coord")));
+   fail_if(!(tdl = eolian_typedecl_alias_get_by_name(unit, "Evas.Coord")));
    fail_if(!eolian_typedecl_is_extern(tdl));
 
    /* regular struct */
@@ -986,9 +986,9 @@ START_TEST(eolian_free_func)
    fail_if(strcmp(eolian_typedecl_free_func_get(tdl), "test_free"));
 
    /* typedef */
-   fail_if(!(tdl = eolian_typedecl_alias_get_by_name("Typedef1")));
+   fail_if(!(tdl = eolian_typedecl_alias_get_by_name(unit, "Typedef1")));
    fail_if(eolian_typedecl_free_func_get(tdl));
-   fail_if(!(tdl = eolian_typedecl_alias_get_by_name("Typedef2")));
+   fail_if(!(tdl = eolian_typedecl_alias_get_by_name(unit, "Typedef2")));
    fail_if(strcmp(eolian_typedecl_free_func_get(tdl), "def_free"));
 
    /* opaque struct */
@@ -998,10 +998,10 @@ START_TEST(eolian_free_func)
    fail_if(strcmp(eolian_typedecl_free_func_get(tdl), "opaque_free"));
 
    /* pointer */
-   fail_if(!(tdl = eolian_typedecl_alias_get_by_name("Pointer1")));
+   fail_if(!(tdl = eolian_typedecl_alias_get_by_name(unit, "Pointer1")));
    fail_if(!(type = eolian_typedecl_base_type_get(tdl)));
    fail_if(eolian_type_free_func_get(type));
-   fail_if(!(tdl = eolian_typedecl_alias_get_by_name("Pointer2")));
+   fail_if(!(tdl = eolian_typedecl_alias_get_by_name(unit, "Pointer2")));
    fail_if(!(type = eolian_typedecl_base_type_get(tdl)));
    fail_if(strcmp(eolian_type_free_func_get(type), "ptr_free"));
 
@@ -1071,7 +1071,7 @@ START_TEST(eolian_import)
    fail_if(!(unit = eolian_file_parse(PACKAGE_DATA_DIR"/data/import.eo")));
    fail_if(!(class = eolian_class_get_by_name(unit, "Import")));
 
-   fail_if(!(tdl = eolian_typedecl_alias_get_by_name("Imported")));
+   fail_if(!(tdl = eolian_typedecl_alias_get_by_name(unit, "Imported")));
    fail_if(strcmp(eolian_typedecl_file_get(tdl), "import_types.eot"));
 
    fail_if(!(tdl = eolian_typedecl_struct_get_by_name("Imported_Struct")));
@@ -1287,7 +1287,7 @@ START_TEST(eolian_docs)
                   "Docs for bar."));
    fail_if(eolian_documentation_description_get(doc));
 
-   fail_if(!(tdl = eolian_typedecl_alias_get_by_name("Alias")));
+   fail_if(!(tdl = eolian_typedecl_alias_get_by_name(unit, "Alias")));
    fail_if(!(doc = eolian_typedecl_documentation_get(tdl)));
    fail_if(strcmp(eolian_documentation_summary_get(doc),
                   "Docs for typedef."));

-- 


Reply via email to