summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@osg.samsung.com>2017-05-26 14:52:44 +0200
committerDaniel Kolesa <d.kolesa@osg.samsung.com>2017-05-30 17:15:54 +0200
commit81a1d9659a12d3bee981309a3b7eb3a695169f04 (patch)
tree75289572a4bb8614c69079ba5a7c73e47bc5caea
parentc234b5ee69186ec8dc02e3742d055ff24f0afba6 (diff)
downloadefl-81a1d9659a12d3bee981309a3b7eb3a695169f04.tar.gz
eolian: type_class_get takes unit
-rw-r--r--src/bindings/luajit/eolian.lua6
-rw-r--r--src/lib/eolian/Eolian.h3
-rw-r--r--src/lib/eolian/database_type_api.c5
-rw-r--r--src/lib/eolian/database_validate.c3
4 files changed, 9 insertions, 8 deletions
diff --git a/src/bindings/luajit/eolian.lua b/src/bindings/luajit/eolian.lua
index b59dc37f3d..19c91bdc4e 100644
--- a/src/bindings/luajit/eolian.lua
+++ b/src/bindings/luajit/eolian.lua
@@ -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,
diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h
index 97c10d8280..13e4770c23 100644
--- a/src/lib/eolian/Eolian.h
+++ b/src/lib/eolian/Eolian.h
@@ -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.
diff --git a/src/lib/eolian/database_type_api.c b/src/lib/eolian/database_type_api.c
index ef9d397896..2c8fd9a133 100644
--- a/src/lib/eolian/database_type_api.c
+++ b/src/lib/eolian/database_type_api.c
@@ -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
diff --git a/src/lib/eolian/database_validate.c b/src/lib/eolian/database_validate.c
index f361ceac13..f8dac39aa5 100644
--- a/src/lib/eolian/database_validate.c
+++ b/src/lib/eolian/database_validate.c
@@ -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 "