summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@osg.samsung.com>2016-06-10 14:28:19 +0100
committerDaniel Kolesa <d.kolesa@osg.samsung.com>2016-06-10 14:28:19 +0100
commit33c147f6d42d4377b0ea368101071d4e1db25cac (patch)
tree6df346205126b0b44a2a1c807f1b56c7c2a7c779
parent93eadd76d6d49bbe1e49eaf976b4c6fd5545f340 (diff)
eolian: remove the unnecessary subtypes API
Inner type can now be retrieved as a base type of the type. If the type has two inner types or more, there is a new API that allows you to get the second inner type by calling it on the first one (same would apply to getting third via second etc.). This API is simpler to use and doesn't require an iterator.
-rw-r--r--src/bin/eolian/eo_generator.c8
-rw-r--r--src/bin/eolian_js/main.cc6
-rw-r--r--src/bindings/luajit/eolian.lua13
-rw-r--r--src/lib/eolian/Eolian.h25
-rw-r--r--src/lib/eolian/database_type.c4
-rw-r--r--src/lib/eolian/database_type_api.c18
-rw-r--r--src/lib/eolian/eo_parser.c9
-rw-r--r--src/lib/eolian/eolian_database.h2
-rw-r--r--src/lib/eolian_cxx/grammar/klass_def.hpp8
-rw-r--r--src/tests/eolian/eolian_parsing.c25
10 files changed, 53 insertions, 65 deletions
diff --git a/src/bin/eolian/eo_generator.c b/src/bin/eolian/eo_generator.c
index 8520b7e0cc..ee1ce31f78 100644
--- a/src/bin/eolian/eo_generator.c
+++ b/src/bin/eolian/eo_generator.c
@@ -379,15 +379,9 @@ eo_bind_func_generate(const Eolian_Class *class, const Eolian_Function *funcid,
379 if(!has_promise && !strcmp(ptype, "Eina_Promise *") && 379 if(!has_promise && !strcmp(ptype, "Eina_Promise *") &&
380 (ftype == EOLIAN_UNRESOLVED || ftype == EOLIAN_METHOD) && pdir == EOLIAN_INOUT_PARAM) 380 (ftype == EOLIAN_UNRESOLVED || ftype == EOLIAN_METHOD) && pdir == EOLIAN_INOUT_PARAM)
381 { 381 {
382 Eina_Iterator* promise_values;
383 has_promise = EINA_TRUE; 382 has_promise = EINA_TRUE;
384 promise_param_name = eina_stringshare_add(pname); 383 promise_param_name = eina_stringshare_add(pname);
385 promise_values = eolian_type_subtypes_get(ptypet); 384 promise_value_type = eolian_type_c_type_get(eolian_type_base_type_get(ptypet));
386 Eolian_Type* subtype;
387 if(eina_iterator_next(promise_values, (void**)&subtype))
388 {
389 promise_value_type = eolian_type_c_type_get(subtype);
390 }
391 eina_strbuf_append_printf(impl_full_params, ", Eina_Promise_Owner *%s%s", 385 eina_strbuf_append_printf(impl_full_params, ", Eina_Promise_Owner *%s%s",
392 pname, is_empty && !dflt_value ?" EINA_UNUSED":""); 386 pname, is_empty && !dflt_value ?" EINA_UNUSED":"");
393 eina_strbuf_append_printf(params, "__eo_promise"); 387 eina_strbuf_append_printf(params, "__eo_promise");
diff --git a/src/bin/eolian_js/main.cc b/src/bin/eolian_js/main.cc
index d30ab83722..5497d6db7d 100644
--- a/src/bin/eolian_js/main.cc
+++ b/src/bin/eolian_js/main.cc
@@ -207,9 +207,8 @@ _eolian_type_cpp_type_named_get(const Eolian_Type *tp, std::string const& caller
207 result = "efl::eina::js::make_complex_tag<" + result; 207 result = "efl::eina::js::make_complex_tag<" + result;
208 208
209 bool has_subtypes = false; 209 bool has_subtypes = false;
210 auto subtypes = eolian_type_subtypes_get(btp); 210 const Eolian_Type *subtype = eolian_type_base_type_get(btp);
211 const Eolian_Type *subtype; 211 while (subtype)
212 EINA_ITERATOR_FOREACH(subtypes, subtype)
213 { 212 {
214 auto t = _eolian_type_cpp_type_named_get(subtype, caller_class_prefix, need_name_getter); 213 auto t = _eolian_type_cpp_type_named_get(subtype, caller_class_prefix, need_name_getter);
215 auto k = type_class_name(subtype); 214 auto k = type_class_name(subtype);
@@ -223,6 +222,7 @@ _eolian_type_cpp_type_named_get(const Eolian_Type *tp, std::string const& caller
223 result += ", " + t + ", ::efl::eina::js::nonclass_cls_name_getter"; 222 result += ", " + t + ", ::efl::eina::js::nonclass_cls_name_getter";
224 } 223 }
225 has_subtypes = true; 224 has_subtypes = true;
225 subtype = eolian_type_next_type_get(subtype);
226 } 226 }
227 227
228 if (!has_subtypes) 228 if (!has_subtypes)
diff --git a/src/bindings/luajit/eolian.lua b/src/bindings/luajit/eolian.lua
index 159fc0a70c..4f8a1c9012 100644
--- a/src/bindings/luajit/eolian.lua
+++ b/src/bindings/luajit/eolian.lua
@@ -274,7 +274,6 @@ ffi.cdef [[
274 Eina_Iterator *eolian_typedecl_all_enums_get(void); 274 Eina_Iterator *eolian_typedecl_all_enums_get(void);
275 Eolian_Type_Type eolian_type_type_get(const Eolian_Type *tp); 275 Eolian_Type_Type eolian_type_type_get(const Eolian_Type *tp);
276 Eolian_Typedecl_Type eolian_typedecl_type_get(const Eolian_Typedecl *tp); 276 Eolian_Typedecl_Type eolian_typedecl_type_get(const Eolian_Typedecl *tp);
277 Eina_Iterator *eolian_type_subtypes_get(const Eolian_Type *tp);
278 Eina_Iterator *eolian_typedecl_struct_fields_get(const Eolian_Typedecl *tp); 277 Eina_Iterator *eolian_typedecl_struct_fields_get(const Eolian_Typedecl *tp);
279 const Eolian_Struct_Type_Field *eolian_typedecl_struct_field_get(const Eolian_Typedecl *tp, const char *field); 278 const Eolian_Struct_Type_Field *eolian_typedecl_struct_field_get(const Eolian_Typedecl *tp, const char *field);
280 const char *eolian_typedecl_struct_field_name_get(const Eolian_Struct_Type_Field *fl); 279 const char *eolian_typedecl_struct_field_name_get(const Eolian_Struct_Type_Field *fl);
@@ -293,6 +292,7 @@ ffi.cdef [[
293 const char *eolian_typedecl_file_get(const Eolian_Typedecl *tp); 292 const char *eolian_typedecl_file_get(const Eolian_Typedecl *tp);
294 293
295 const Eolian_Type *eolian_type_base_type_get(const Eolian_Type *tp); 294 const Eolian_Type *eolian_type_base_type_get(const Eolian_Type *tp);
295 const Eolian_Type *eolian_type_next_type_get(const Eolian_Type *tp);
296 const Eolian_Type *eolian_typedecl_base_type_get(const Eolian_Typedecl *tp); 296 const Eolian_Type *eolian_typedecl_base_type_get(const Eolian_Typedecl *tp);
297 const Eolian_Typedecl *eolian_type_typedecl_get(const Eolian_Type *tp); 297 const Eolian_Typedecl *eolian_type_typedecl_get(const Eolian_Type *tp);
298 298
@@ -614,11 +614,6 @@ M.Type = ffi.metatype("Eolian_Type", {
614 return tonumber(eolian.eolian_type_type_get(self)) 614 return tonumber(eolian.eolian_type_type_get(self))
615 end, 615 end,
616 616
617 subtypes_get = function(self)
618 return Ptr_Iterator("const Eolian_Type*",
619 eolian.eolian_type_subtypes_get(self))
620 end,
621
622 file_get = function(self, name) 617 file_get = function(self, name)
623 local v = eolian.eolian_type_file_get(self) 618 local v = eolian.eolian_type_file_get(self)
624 if v == nil then return nil end 619 if v == nil then return nil end
@@ -631,6 +626,12 @@ M.Type = ffi.metatype("Eolian_Type", {
631 return v 626 return v
632 end, 627 end,
633 628
629 next_type_get = function(self)
630 local v = eolian.eolian_type_next_type_get(self)
631 if v == nil then return nil end
632 return v
633 end,
634
634 typedecl_get = function(self) 635 typedecl_get = function(self)
635 local v = eolian.eolian_type_typedecl_get(self) 636 local v = eolian.eolian_type_typedecl_get(self)
636 if v == nil then return nil end 637 if v == nil then return nil end
diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h
index 1821e46a75..8039337a2f 100644
--- a/src/lib/eolian/Eolian.h
+++ b/src/lib/eolian/Eolian.h
@@ -1652,34 +1652,41 @@ EAPI Eina_Stringshare *eolian_typedecl_free_func_get(const Eolian_Typedecl *tp);
1652EAPI Eolian_Type_Type eolian_type_type_get(const Eolian_Type *tp); 1652EAPI Eolian_Type_Type eolian_type_type_get(const Eolian_Type *tp);
1653 1653
1654/* 1654/*
1655 * @brief Get an iterator to all subtypes of a type. 1655 * @brief Get the filename of a type.
1656 * 1656 *
1657 * @param[in] tp the type. 1657 * @param[in] tp the type.
1658 * @return the iterator when @c tp is a complex type. 1658 * @return the filename.
1659 * 1659 *
1660 * @ingroup Eolian 1660 * @ingroup Eolian
1661 */ 1661 */
1662EAPI Eina_Iterator *eolian_type_subtypes_get(const Eolian_Type *tp); 1662EAPI Eina_Stringshare *eolian_type_file_get(const Eolian_Type *tp);
1663 1663
1664/* 1664/*
1665 * @brief Get the filename of a type. 1665 * @brief Get the base type of a type.
1666 *
1667 * For pointers, this is the type before the star and for complex types,
1668 * this is the first inner type.
1666 * 1669 *
1667 * @param[in] tp the type. 1670 * @param[in] tp the type.
1668 * @return the filename. 1671 * @return the base type or NULL.
1669 * 1672 *
1670 * @ingroup Eolian 1673 * @ingroup Eolian
1671 */ 1674 */
1672EAPI Eina_Stringshare *eolian_type_file_get(const Eolian_Type *tp); 1675EAPI const Eolian_Type *eolian_type_base_type_get(const Eolian_Type *tp);
1673 1676
1674/* 1677/*
1675 * @brief Get the base type of a pointer type. 1678 * @brief Get the next inner type of a complex type.
1679 *
1680 * The inner types of a complex type form a chain. Therefore, you first retrieve
1681 * the first one via eolian_type_base_type_get and then get the next one via
1682 * this API function called on the first inner type if necessary.
1676 * 1683 *
1677 * @param[in] tp the type. 1684 * @param[in] tp the type.
1678 * @return the base type when @c tp is a pointer, NULL otherwise. 1685 * @return the next type or NULL.
1679 * 1686 *
1680 * @ingroup Eolian 1687 * @ingroup Eolian
1681 */ 1688 */
1682EAPI const Eolian_Type *eolian_type_base_type_get(const Eolian_Type *tp); 1689EAPI const Eolian_Type *eolian_type_next_type_get(const Eolian_Type *tp);
1683 1690
1684/* 1691/*
1685 * @brief Get the declaration a regular type points to. 1692 * @brief Get the declaration a regular type points to.
diff --git a/src/lib/eolian/database_type.c b/src/lib/eolian/database_type.c
index 1a48240e84..c9cc654761 100644
--- a/src/lib/eolian/database_type.c
+++ b/src/lib/eolian/database_type.c
@@ -10,11 +10,9 @@ database_type_del(Eolian_Type *tp)
10{ 10{
11 if (!tp) return; 11 if (!tp) return;
12 const char *sp; 12 const char *sp;
13 Eolian_Type *stp;
14 if (tp->base.file) eina_stringshare_del(tp->base.file); 13 if (tp->base.file) eina_stringshare_del(tp->base.file);
15 if (tp->subtypes) EINA_LIST_FREE(tp->subtypes, stp)
16 database_type_del(stp);
17 database_type_del(tp->base_type); 14 database_type_del(tp->base_type);
15 database_type_del(tp->next_type);
18 if (tp->name) eina_stringshare_del(tp->name); 16 if (tp->name) eina_stringshare_del(tp->name);
19 if (tp->full_name) eina_stringshare_del(tp->full_name); 17 if (tp->full_name) eina_stringshare_del(tp->full_name);
20 if (tp->namespaces) EINA_LIST_FREE(tp->namespaces, sp) 18 if (tp->namespaces) EINA_LIST_FREE(tp->namespaces, sp)
diff --git a/src/lib/eolian/database_type_api.c b/src/lib/eolian/database_type_api.c
index c580404baa..6afe870fc4 100644
--- a/src/lib/eolian/database_type_api.c
+++ b/src/lib/eolian/database_type_api.c
@@ -105,17 +105,6 @@ eolian_typedecl_type_get(const Eolian_Typedecl *tp)
105} 105}
106 106
107EAPI Eina_Iterator * 107EAPI Eina_Iterator *
108eolian_type_subtypes_get(const Eolian_Type *tp)
109{
110 Eolian_Type_Type tpt;
111 EINA_SAFETY_ON_NULL_RETURN_VAL(tp, NULL);
112 tpt = tp->type;
113 if ((tpt != EOLIAN_TYPE_COMPLEX) || !tp->subtypes)
114 return NULL;
115 return eina_list_iterator_new(tp->subtypes);
116}
117
118EAPI Eina_Iterator *
119eolian_typedecl_struct_fields_get(const Eolian_Typedecl *tp) 108eolian_typedecl_struct_fields_get(const Eolian_Typedecl *tp)
120{ 109{
121 EINA_SAFETY_ON_NULL_RETURN_VAL(tp, NULL); 110 EINA_SAFETY_ON_NULL_RETURN_VAL(tp, NULL);
@@ -262,6 +251,13 @@ eolian_type_base_type_get(const Eolian_Type *tp)
262 return tp->base_type; 251 return tp->base_type;
263} 252}
264 253
254EAPI const Eolian_Type *
255eolian_type_next_type_get(const Eolian_Type *tp)
256{
257 EINA_SAFETY_ON_NULL_RETURN_VAL(tp, NULL);
258 return tp->next_type;
259}
260
265EAPI const Eolian_Typedecl * 261EAPI const Eolian_Typedecl *
266eolian_type_typedecl_get(const Eolian_Type *tp) 262eolian_type_typedecl_get(const Eolian_Type *tp)
267{ 263{
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index e6e6f70663..f54a7d311f 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -816,20 +816,17 @@ parse_type_void(Eo_Lexer *ls, Eina_Bool allow_ref)
816 int bline = ls->line_number, bcol = ls->column; 816 int bline = ls->line_number, bcol = ls->column;
817 def->type = EOLIAN_TYPE_COMPLEX; 817 def->type = EOLIAN_TYPE_COMPLEX;
818 check_next(ls, '<'); 818 check_next(ls, '<');
819 def->subtypes = eina_list_append(def->subtypes, 819 def->base_type = parse_type(ls, EINA_FALSE);
820 parse_type(ls, EINA_FALSE));
821 pop_type(ls); 820 pop_type(ls);
822 if (tpid == KW_hash) 821 if (tpid == KW_hash)
823 { 822 {
824 check_next(ls, ','); 823 check_next(ls, ',');
825 def->subtypes = eina_list_append(def->subtypes, 824 def->base_type->next_type = parse_type(ls, EINA_FALSE);
826 parse_type(ls, EINA_FALSE));
827 pop_type(ls); 825 pop_type(ls);
828 } 826 }
829 else if(tpid == KW_promise && test_next(ls, ',')) 827 else if(tpid == KW_promise && test_next(ls, ','))
830 { 828 {
831 def->subtypes = eina_list_append(def->subtypes, 829 def->base_type->next_type = parse_type(ls, EINA_FALSE);
832 parse_type(ls, EINA_FALSE));
833 pop_type(ls); 830 pop_type(ls);
834 } 831 }
835 check_match(ls, '>', '<', bline, bcol); 832 check_match(ls, '>', '<', bline, bcol);
diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h
index e46192998f..874862bf00 100644
--- a/src/lib/eolian/eolian_database.h
+++ b/src/lib/eolian/eolian_database.h
@@ -167,8 +167,8 @@ struct _Eolian_Type
167{ 167{
168 Eolian_Object base; 168 Eolian_Object base;
169 Eolian_Type_Type type; 169 Eolian_Type_Type type;
170 Eina_List *subtypes;
171 Eolian_Type *base_type; 170 Eolian_Type *base_type;
171 Eolian_Type *next_type;
172 Eina_Stringshare *name; 172 Eina_Stringshare *name;
173 Eina_Stringshare *full_name; 173 Eina_Stringshare *full_name;
174 Eina_List *namespaces; 174 Eina_List *namespaces;
diff --git a/src/lib/eolian_cxx/grammar/klass_def.hpp b/src/lib/eolian_cxx/grammar/klass_def.hpp
index 9cfd8304d9..56d408f306 100644
--- a/src/lib/eolian_cxx/grammar/klass_def.hpp
+++ b/src/lib/eolian_cxx/grammar/klass_def.hpp
@@ -302,11 +302,11 @@ inline void type_def::set(Eolian_Type const* eolian_type)
302 { 302 {
303 complex_type_def complex 303 complex_type_def complex
304 {{::eolian_type_name_get(eolian_type), {qualifiers(eolian_type), {}}, {}}, {}}; 304 {{::eolian_type_name_get(eolian_type), {qualifiers(eolian_type), {}}, {}}, {}};
305 for(efl::eina::iterator<Eolian_Type const> type_iterator( ::eolian_type_subtypes_get(eolian_type)) 305 Eolian_Type const* stp = eolian_type_base_type_get(eolian_type);
306 , type_last; type_iterator != type_last; ++type_iterator) 306 while (stp)
307 { 307 {
308 Eolian_Type const* type = &*type_iterator; 308 complex.subtypes.push_back({stp});
309 complex.subtypes.push_back({type}); 309 stp = eolian_type_next_type_get(stp);
310 } 310 }
311 original_type = complex; 311 original_type = complex;
312 } 312 }
diff --git a/src/tests/eolian/eolian_parsing.c b/src/tests/eolian/eolian_parsing.c
index 33befe1890..02232f3045 100644
--- a/src/tests/eolian/eolian_parsing.c
+++ b/src/tests/eolian/eolian_parsing.c
@@ -388,13 +388,12 @@ START_TEST(eolian_typedef)
388 fail_if(!eolian_type_is_own(type)); 388 fail_if(!eolian_type_is_own(type));
389 fail_if(strcmp(type_name, "Eina_List *")); 389 fail_if(strcmp(type_name, "Eina_List *"));
390 eina_stringshare_del(type_name); 390 eina_stringshare_del(type_name);
391 fail_if(!(iter = eolian_type_subtypes_get(type))); 391 fail_if(!(type = eolian_type_base_type_get(type)));
392 fail_if(!eina_iterator_next(iter, (void**)&type)); 392 fail_if(!!eolian_type_next_type_get(type));
393 fail_if(!(type_name = eolian_type_c_type_get(type))); 393 fail_if(!(type_name = eolian_type_c_type_get(type)));
394 fail_if(strcmp(type_name, "Eo *")); 394 fail_if(strcmp(type_name, "Eo *"));
395 fail_if(eolian_type_is_own(type)); 395 fail_if(eolian_type_is_own(type));
396 eina_stringshare_del(type_name); 396 eina_stringshare_del(type_name);
397 eina_iterator_free(iter);
398 397
399 /* List */ 398 /* List */
400 fail_if(!(iter = eolian_typedecl_aliases_get_by_file("typedef.eo"))); 399 fail_if(!(iter = eolian_typedecl_aliases_get_by_file("typedef.eo")));
@@ -441,20 +440,18 @@ START_TEST(eolian_complex_type)
441 fail_if(!eolian_type_is_own(type)); 440 fail_if(!eolian_type_is_own(type));
442 fail_if(strcmp(type_name, "Eina_List *")); 441 fail_if(strcmp(type_name, "Eina_List *"));
443 eina_stringshare_del(type_name); 442 eina_stringshare_del(type_name);
444 fail_if(!(iter = eolian_type_subtypes_get(type))); 443 fail_if(!(type = eolian_type_base_type_get(type)));
445 fail_if(!eina_iterator_next(iter, (void**)&type)); 444 fail_if(!!eolian_type_next_type_get(type));
446 fail_if(!(type_name = eolian_type_c_type_get(type))); 445 fail_if(!(type_name = eolian_type_c_type_get(type)));
447 fail_if(eolian_type_is_own(type)); 446 fail_if(eolian_type_is_own(type));
448 fail_if(strcmp(type_name, "Eina_Array *")); 447 fail_if(strcmp(type_name, "Eina_Array *"));
449 eina_stringshare_del(type_name); 448 eina_stringshare_del(type_name);
450 eina_iterator_free(iter); 449 fail_if(!(type = eolian_type_base_type_get(type)));
451 fail_if(!(iter = eolian_type_subtypes_get(type))); 450 fail_if(!!eolian_type_next_type_get(type));
452 fail_if(!eina_iterator_next(iter, (void**)&type));
453 fail_if(!(type_name = eolian_type_c_type_get(type))); 451 fail_if(!(type_name = eolian_type_c_type_get(type)));
454 fail_if(!eolian_type_is_own(type)); 452 fail_if(!eolian_type_is_own(type));
455 fail_if(strcmp(type_name, "Eo **")); 453 fail_if(strcmp(type_name, "Eo **"));
456 eina_stringshare_del(type_name); 454 eina_stringshare_del(type_name);
457 eina_iterator_free(iter);
458 /* Properties parameter type */ 455 /* Properties parameter type */
459 fail_if(!(iter = eolian_property_values_get(fid, EOLIAN_PROP_GET))); 456 fail_if(!(iter = eolian_property_values_get(fid, EOLIAN_PROP_GET)));
460 fail_if(!(eina_iterator_next(iter, (void**)&param))); 457 fail_if(!(eina_iterator_next(iter, (void**)&param)));
@@ -466,13 +463,12 @@ START_TEST(eolian_complex_type)
466 fail_if(!eolian_type_is_own(type)); 463 fail_if(!eolian_type_is_own(type));
467 fail_if(strcmp(type_name, "Eina_List *")); 464 fail_if(strcmp(type_name, "Eina_List *"));
468 eina_stringshare_del(type_name); 465 eina_stringshare_del(type_name);
469 fail_if(!(iter = eolian_type_subtypes_get(type))); 466 fail_if(!(type = eolian_type_base_type_get(type)));
470 fail_if(!eina_iterator_next(iter, (void**)&type)); 467 fail_if(!!eolian_type_next_type_get(type));
471 fail_if(!(type_name = eolian_type_c_type_get(type))); 468 fail_if(!(type_name = eolian_type_c_type_get(type)));
472 fail_if(eolian_type_is_own(type)); 469 fail_if(eolian_type_is_own(type));
473 fail_if(strcmp(type_name, "int")); 470 fail_if(strcmp(type_name, "int"));
474 eina_stringshare_del(type_name); 471 eina_stringshare_del(type_name);
475 eina_iterator_free(iter);
476 472
477 /* Methods return type */ 473 /* Methods return type */
478 fail_if(!(fid = eolian_class_function_get_by_name(class, "foo", EOLIAN_METHOD))); 474 fail_if(!(fid = eolian_class_function_get_by_name(class, "foo", EOLIAN_METHOD)));
@@ -481,13 +477,12 @@ START_TEST(eolian_complex_type)
481 fail_if(!eolian_type_is_own(type)); 477 fail_if(!eolian_type_is_own(type));
482 fail_if(strcmp(type_name, "Eina_List *")); 478 fail_if(strcmp(type_name, "Eina_List *"));
483 eina_stringshare_del(type_name); 479 eina_stringshare_del(type_name);
484 fail_if(!(iter = eolian_type_subtypes_get(type))); 480 fail_if(!(type = eolian_type_base_type_get(type)));
485 fail_if(!eina_iterator_next(iter, (void**)&type)); 481 fail_if(!!eolian_type_next_type_get(type));
486 fail_if(!(type_name = eolian_type_c_type_get(type))); 482 fail_if(!(type_name = eolian_type_c_type_get(type)));
487 fail_if(eolian_type_is_own(type)); 483 fail_if(eolian_type_is_own(type));
488 fail_if(strcmp(type_name, "Eina_Stringshare *")); 484 fail_if(strcmp(type_name, "Eina_Stringshare *"));
489 eina_stringshare_del(type_name); 485 eina_stringshare_del(type_name);
490 eina_iterator_free(iter);
491 /* Methods parameter type */ 486 /* Methods parameter type */
492 fail_if(!(iter = eolian_function_parameters_get(fid))); 487 fail_if(!(iter = eolian_function_parameters_get(fid)));
493 fail_if(!(eina_iterator_next(iter, (void**)&param))); 488 fail_if(!(eina_iterator_next(iter, (void**)&param)));