eolian: aliased_base_get funcs don't need unit
authorDaniel Kolesa <d.kolesa@osg.samsung.com>
Fri, 12 Jan 2018 17:02:32 +0000 (18:02 +0100)
committerWonki Kim <wonki_.kim@samsung.com>
Wed, 17 Jan 2018 09:19:30 +0000 (18:19 +0900)
src/bin/eolian/sources.c
src/bindings/luajit/eolian.lua
src/lib/eolian/Eolian.h
src/lib/eolian/database_type_api.c
src/scripts/elua/apps/docgen/doctree.lua
src/scripts/pyolian/eolian.py
src/scripts/pyolian/eolian_lib.py
src/tests/eolian/eolian_parsing.c

index eb7f385..e6dff01 100644 (file)
@@ -123,7 +123,7 @@ _append_defval(const Eolian_Unit *src, Eina_Strbuf *buf,
         else WRN("evaluation of default value failed");
      }
    /* default value or fallback */
-   const Eolian_Type *btp = eolian_type_aliased_base_get(src, tp);
+   const Eolian_Type *btp = eolian_type_aliased_base_get(tp);
    if (eolian_type_is_ptr(btp))
      {
         eina_strbuf_append(buf, "NULL");
index 940ad83..1e0f0a8 100644 (file)
@@ -401,8 +401,8 @@ ffi.cdef [[
     const Eolian_Type *eolian_typedecl_base_type_get(const Eolian_Typedecl *tp);
     const Eolian_Typedecl *eolian_type_typedecl_get(const Eolian_Type *tp);
 
-    const Eolian_Type *eolian_type_aliased_base_get(const Eolian_Unit *unit, const Eolian_Type *tp);
-    const Eolian_Type *eolian_typedecl_aliased_base_get(const Eolian_Unit *unit, const Eolian_Typedecl *tp);
+    const Eolian_Type *eolian_type_aliased_base_get(const Eolian_Type *tp);
+    const Eolian_Type *eolian_typedecl_aliased_base_get(const Eolian_Typedecl *tp);
 
     const Eolian_Class *eolian_type_class_get(const Eolian_Type *tp);
     Eina_Bool eolian_type_is_owned(const Eolian_Type *tp);
@@ -766,8 +766,8 @@ M.Typedecl = ffi.metatype("Eolian_Typedecl", {
             return v
         end,
 
-        aliased_base_get = function(self, unit)
-            local v = eolian.eolian_typedecl_aliased_byse_get(unit, self)
+        aliased_base_get = function(self)
+            local v = eolian.eolian_typedecl_aliased_byse_get(self)
             if v == nil then return nil end
             return v
         end,
@@ -847,8 +847,8 @@ M.Type = ffi.metatype("Eolian_Type", {
             return v
         end,
 
-        aliased_base_get = function(self, unit)
-            local v = eolian.eolian_type_aliased_byse_get(unit, self)
+        aliased_base_get = function(self)
+            local v = eolian.eolian_type_aliased_byse_get(self)
             if v == nil then return nil end
             return v
         end,
index 34b47c5..0610ccb 100644 (file)
@@ -1807,13 +1807,12 @@ EAPI const Eolian_Type *eolian_typedecl_base_type_get(const Eolian_Typedecl *tp)
  * If the given typedecl is an alias, it returns the result of
  * eolian_type_aliased_base_get on its base type. Otherwise this returns NULL.
  *
- * @param[in] unit the unit to look in
  * @param[in] tp the type declaration.
  * @return the lowest alias base or the given type.
  *
  * @ingroup Eolian
  */
-EAPI const Eolian_Type *eolian_typedecl_aliased_base_get(const Eolian_Unit *unit, const Eolian_Typedecl *tp);
+EAPI const Eolian_Type *eolian_typedecl_aliased_base_get(const Eolian_Typedecl *tp);
 
 /*
  * @brief Check if a struct or alias type declaration is extern.
@@ -1973,13 +1972,12 @@ EAPI const Eolian_Typedecl *eolian_type_typedecl_get(const Eolian_Type *tp);
  * type actually is while still having convenience. Keep in mind that this stops
  * if the found type is actually a pointer (has a ptr() on it).
  *
- * @param[in] unit the unit to look in
  * @param[in] tp the type.
  * @return the lowest alias base or the given type.
  *
  * @ingroup Eolian
  */
-EAPI const Eolian_Type *eolian_type_aliased_base_get(const Eolian_Unit *unit, const Eolian_Type *tp);
+EAPI const Eolian_Type *eolian_type_aliased_base_get(const Eolian_Type *tp);
 
 /*
  * @brief Get the class associated with an EOLIAN_TYPE_CLASS type.
index eedb42a..cb12891 100644 (file)
@@ -282,22 +282,22 @@ eolian_typedecl_base_type_get(const Eolian_Typedecl *tp)
 }
 
 EAPI const Eolian_Type *
-eolian_type_aliased_base_get(const Eolian_Unit *unit, const Eolian_Type *tp)
+eolian_type_aliased_base_get(const Eolian_Type *tp)
 {
    if (!tp || tp->type != EOLIAN_TYPE_REGULAR || tp->is_ptr)
      return tp;
-   const Eolian_Typedecl *btp = database_type_decl_find(unit, tp);
+   const Eolian_Typedecl *btp = eolian_type_typedecl_get(tp);
    if (btp && (btp->type == EOLIAN_TYPEDECL_ALIAS))
-     return eolian_typedecl_aliased_base_get(unit, btp);
+     return eolian_typedecl_aliased_base_get(btp);
    return tp;
 }
 
 EAPI const Eolian_Type *
-eolian_typedecl_aliased_base_get(const Eolian_Unit *unit, const Eolian_Typedecl *tp)
+eolian_typedecl_aliased_base_get(const Eolian_Typedecl *tp)
 {
    if (!tp || tp->type != EOLIAN_TYPEDECL_ALIAS)
      return NULL;
-   return eolian_type_aliased_base_get(unit, tp->base_type);
+   return eolian_type_aliased_base_get(tp->base_type);
 }
 
 EAPI const Eolian_Class *
index 479303b..fbe684a 100644 (file)
@@ -710,8 +710,7 @@ M.Type = Node:clone {
     end,
 
     typedecl_get = function(self)
-        -- FIXME: unit
-        local v = self.type:typedecl_get(eos:unit_get())
+        local v = self.type:typedecl_get()
         if not v then
             return nil
         end
@@ -719,8 +718,7 @@ M.Type = Node:clone {
     end,
 
     aliased_base_get = function(self)
-        -- FIXME: unit
-        local v = self.type:aliased_base_get(eos:unit_get())
+        local v = self.type:aliased_base_get()
         if not v then
             return nil
         end
@@ -896,8 +894,7 @@ M.Typedecl = Node:clone {
     end,
 
     aliased_base_get = function(self)
-        -- FIXME: unit
-        local v = self.typedecl:aliased_base_get(eos:unit_get())
+        local v = self.typedecl:aliased_base_get()
         if not v then
             return nil
         end
index 60bfdba..cdb269a 100644 (file)
@@ -1080,11 +1080,10 @@ class Type(EolianBaseObject):  # OK  (4 TODO Unit*)
         c_type = lib.eolian_type_next_type_get(self._obj)
         return Type(c_type) if c_type else None 
 
-    # TODO FIXME STRANGE API (need Eolian_Unit*)
-    #  @cached_property
-    #  def aliased_base(self):
-        #  c_type = lib.eolian_type_aliased_base_get(self._obj)
-        #  return Type(c_type) if c_type else None 
+    @cached_property
+    def aliased_base(self):
+        c_type = lib.eolian_type_aliased_base_get(self._obj)
+        return Type(c_type) if c_type else None
 
     @cached_property
     def class_(self):
@@ -1172,11 +1171,10 @@ class Typedecl(EolianBaseObject):  # OK (2 TODO Unit*)
         c_type = lib.eolian_typedecl_base_type_get(self._obj)
         return Type(c_type) if c_type else None
 
-    # TODO FIX THIS, need Eolian_Unit* param  ???
-    #  @cached_property
-    #  def aliased_base(self):
-        #  c_type = lib.eolian_typedecl_aliased_base_get(self._obj)
-        #  return Type(c_type) if c_type else None
+    @cached_property
+    def aliased_base(self):
+        c_type = lib.eolian_typedecl_aliased_base_get(self._obj)
+        return Type(c_type) if c_type else None
 
     @cached_property
     def documentation(self):
index 2e67cb0..bd17374 100644 (file)
@@ -496,10 +496,9 @@ lib.eolian_typedecl_file_get.restype = c_char_p
 lib.eolian_typedecl_base_type_get.argtypes = [c_void_p,]
 lib.eolian_typedecl_base_type_get.restype = c_void_p
 
-# TODO FIXME STRANGE API (need Eolian_Unit*)
-# EAPI const Eolian_Type *eolian_typedecl_aliased_base_get(const Eolian_Unit *unit, const Eolian_Typedecl *tp);
-#  lib.eolian_typedecl_aliased_base_get.argtypes = [c_void_p, c_void_p,]
-#  lib.eolian_typedecl_aliased_base_get.restype = c_void_p
+# EAPI const Eolian_Type *eolian_typedecl_aliased_base_get(const Eolian_Typedecl *tp);
+lib.eolian_typedecl_aliased_base_get.argtypes = [c_void_p,]
+lib.eolian_typedecl_aliased_base_get.restype = c_void_p
 
 # EAPI Eina_Bool eolian_typedecl_is_extern(const Eolian_Typedecl *tp);
 lib.eolian_typedecl_is_extern.argtypes = [c_void_p,]
@@ -554,10 +553,9 @@ lib.eolian_type_next_type_get.restype = c_void_p
 lib.eolian_type_typedecl_get.argtypes = [c_void_p,]
 lib.eolian_type_typedecl_get.restype = c_void_p
 
-# TODO FIXME STRANGE API (need Eolian_Unit*)
-# EAPI const Eolian_Type *eolian_type_aliased_base_get(const Eolian_Unit *unit, const Eolian_Type *tp);
-#  lib.eolian_type_aliased_base_get.argtypes = [c_void_p,]
-#  lib.eolian_type_aliased_base_get.restype = c_void_p
+# EAPI const Eolian_Type *eolian_type_aliased_base_get(const Eolian_Type *tp);
+lib.eolian_type_aliased_base_get.argtypes = [c_void_p,]
+lib.eolian_type_aliased_base_get.restype = c_void_p
 
 # EAPI const Eolian_Class *eolian_type_class_get(const Eolian_Type *tp);
 lib.eolian_type_class_get.argtypes = [c_void_p,]
index 79f611a..c30ce6e 100644 (file)
@@ -364,7 +364,7 @@ START_TEST(eolian_typedef)
 
    /* Lowest alias base */
    fail_if(!(tdl = eolian_typedecl_alias_get_by_name(unit, "Evas.Coord3")));
-   fail_if(!(type = eolian_typedecl_aliased_base_get(unit, tdl)));
+   fail_if(!(type = eolian_typedecl_aliased_base_get(tdl)));
    fail_if(strcmp(eolian_type_name_get(type), "int"));
 
    /* Complex type */