eo-cxx: Added a few complex types to lookup table

This commit is contained in:
Felipe Magno de Almeida 2014-07-17 21:48:00 -03:00
parent 3abc94696e
commit 7e84cc0154
2 changed files with 8 additions and 10 deletions

View File

@ -17,14 +17,14 @@ type_lookup_table
{"Eina_Inlist *", eolian_type::complex_, false, "efl::eina::range_inlist", {"eina-cxx/eina_inlist.hh"}},
{"Eina_Inlist *", eolian_type::complex_, true, "efl::eina::inlist", {"eina-cxx/eina_inlist.hh"}},
{"Eina_Iterator *", eolian_type::complex_, false, "efl::eina::iterator", {"eina-cxx/eina_iterator.hh"}},
{"Eina_List *", eolian_type::complex_, false, "efl::eina::range_ptr_list", {"eina-cxx/eina_ptrlist.hh"}},
{"Eina_List *", eolian_type::complex_, true, "efl::eina::ptr_list", {"eina-cxx/eina_ptrlist.hh"}},
//{"Eina_List *", eolian_type::complex_, false, "efl::eina::ptr_list", {"eina-cxx/eina_ptrlist.hh"}},
{"Eina_List *", eolian_type::complex_, false, "efl::eina::range_list", {"eina-cxx/eina_list.hh"}},
{"Eina_List *", eolian_type::complex_, true, "efl::eina::list", {"eina-cxx/eina_list.hh"}},
{"Eo *", eolian_type::simple_, true, "efl::eo::base", {"eo_base.hh"}},
//{"Evas_Object *", eolian_type::simple_, false, "evas::object", {"canvas/evas_object.eo.hh"}},
//{"Evas_Object_Box_Layout", eolian_type::callback_, {"Evas.h"}},
{"Evas_Object *", eolian_type::simple_, false, "evas::object", {"canvas/evas_object.eo.hh"}},
{"char *", eolian_type::simple_, true, "std::unique_ptr<char*>", {"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"}},
{"const Eina_List *", eolian_type::complex_, false, "efl::eina::range_list", {"eina-cxx/eina_ptrlist.hh"}},
{"const char *", eolian_type::simple_, false, "std::string", {"string"}}
};

View File

@ -19,8 +19,8 @@ _is_valid(std::string const& value)
inline bool
_is_valid(eolian_type_instance const& type)
{
if (type.empty() || (*type.rbegin()).category == eolian_type::complex_)
return false;
// if (type.empty() || (*type.rbegin()).category == eolian_type::complex_)
// return false;
for (auto rit = ++type.rbegin(), last = type.rend(); rit != last; ++rit)
{
if ((*rit).binding.empty() || (*rit).category != eolian_type::complex_)
@ -56,9 +56,7 @@ _validate(T const& val, eo_class const& cls)
if(!_is_valid(val))
{
static_cast<void>(cls);
#ifndef NDEBUG
std::abort();
#endif
assert(false && "Failed identifier validation");
}
}