eolian: type_class_get takes unit
authorDaniel Kolesa <d.kolesa@osg.samsung.com>
Fri, 26 May 2017 12:52:44 +0000 (14:52 +0200)
committerDaniel Kolesa <d.kolesa@osg.samsung.com>
Tue, 30 May 2017 15:15:54 +0000 (17:15 +0200)
src/bindings/luajit/eolian.lua
src/lib/eolian/Eolian.h
src/lib/eolian/database_type_api.c
src/lib/eolian/database_validate.c

index b59dc37..19c91bd 100644 (file)
@@ -333,7 +333,7 @@ ffi.cdef [[
     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);
+    const Eolian_Class *eolian_type_class_get(const Eolian_Unit *unit, const Eolian_Type *tp);
     size_t eolian_type_array_size_get(const Eolian_Type *tp);
     Eina_Bool eolian_type_is_own(const Eolian_Type *tp);
     Eina_Bool eolian_type_is_const(const Eolian_Type *tp);
@@ -691,8 +691,8 @@ M.Type = ffi.metatype("Eolian_Type", {
             return v
         end,
 
-        class_get = function(self)
-            local v = eolian.eolian_type_class_get(self)
+        class_get = function(self, unit)
+            local v = eolian.eolian_type_class_get(unit, self)
             if v == nil then return nil end
             return v
         end,
index 97c10d8..13e4770 100644 (file)
@@ -1808,12 +1808,13 @@ EAPI const Eolian_Type *eolian_type_aliased_base_get(const Eolian_Type *tp);
 /*
  * @brief Get the class associated with an EOLIAN_TYPE_CLASS type.
  *
+ * @param[in] unit the unit to look in
  * @param[in] tp the type.
  * @return the class or NULL.
  *
  * @ingroup Eolian
  */
-EAPI const Eolian_Class *eolian_type_class_get(const Eolian_Type *tp);
+EAPI const Eolian_Class *eolian_type_class_get(const Eolian_Unit *unit, const Eolian_Type *tp);
 
 /*
  * @brief Get the size of an EOLIAN_TYPE_STATIC_ARRAY.
index ef9d397..2c8fd9a 100644 (file)
@@ -311,13 +311,12 @@ eolian_typedecl_aliased_base_get(const Eolian_Typedecl *tp)
 }
 
 EAPI const Eolian_Class *
-eolian_type_class_get(const Eolian_Type *tp)
+eolian_type_class_get(const Eolian_Unit *unit, const Eolian_Type *tp)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(tp, NULL);
    if (eolian_type_type_get(tp) != EOLIAN_TYPE_CLASS)
      return NULL;
-   /* FIXME: pass unit properly */
-   return eolian_class_get_by_name(NULL, tp->full_name);
+   return eolian_class_get_by_name(unit, tp->full_name);
 }
 
 EAPI size_t
index f361cea..f8dac39 100644 (file)
@@ -154,7 +154,8 @@ _validate_type(const Eolian_Type *tp)
         return _validate_type(tp->base_type);
       case EOLIAN_TYPE_CLASS:
         {
-           if (!eolian_type_class_get(tp))
+           /* FIXME: pass unit properly */
+           if (!eolian_type_class_get(NULL, tp))
              {
                 char buf[256];
                 snprintf(buf, sizeof(buf), "undefined class %s "