diff --git a/src/bin/eolian_cxx/type_lookup.hh b/src/bin/eolian_cxx/type_lookup.hh index 8465ef960d..b26fff91c6 100644 --- a/src/bin/eolian_cxx/type_lookup.hh +++ b/src/bin/eolian_cxx/type_lookup.hh @@ -51,13 +51,36 @@ type_lookup(const Eolian_Type* type, lookup_table_type const& lut = type_lookup_table) { if (type == NULL) return { efl::eolian::void_type }; // XXX shouldn't - size_t n = ::eina_list_count(type->subtypes) + 1; - assert(n > 0); - efl::eolian::eolian_type_instance v(n); - for (size_t i=0; i(::eina_iterator_container_get(it)); + n_ = ::eina_list_count(lt) + 1; + ::eina_iterator_free(it); + } + else + { + n_ = 1; + } + // assert(n_ > 0); + efl::eolian::eolian_type_instance v(n_); + for (size_t i=0; i", {"memory"}}, {"const Eina_Inlist *", eolian_type::complex_, false, "efl::eina::range_inlist", {"eina-cxx/eina_inlist.hh"}}, {"const Eina_List *", eolian_type::complex_, false, "efl::eina::range_ptr_list", {"eina-cxx/eina_ptrlist.hh"}}, diff --git a/src/lib/eolian_cxx/grammar/type_generator.hh b/src/lib/eolian_cxx/grammar/type_generator.hh index 1ca5a6631a..acc7aa97bb 100644 --- a/src/lib/eolian_cxx/grammar/type_generator.hh +++ b/src/lib/eolian_cxx/grammar/type_generator.hh @@ -76,7 +76,7 @@ operator<<(std::ostream& out, to_cxx const& x) << ", " << type_ownership(x._type) << ");"; } else - out << "_ret"; + out << "_tmp_ret"; return out; }