summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2014-10-26 19:42:55 -0200
committerVitor Sousa <vitorsousasilva@gmail.com>2015-01-05 15:52:27 -0200
commit890ce1f9cf902ccd0011a4041fd90d05f93f3c8a (patch)
treed00d89566ed2c84759a976c533eebe75081a350d
parentdff706f123789a3df0f370abe470c383ffbdb55c (diff)
downloadefl-890ce1f9cf902ccd0011a4041fd90d05f93f3c8a.tar.gz
eolian-cxx: Fixed C++ conversion for lists
Signed-off-by: Vitor Sousa <vitorsousasilva@gmail.com>
-rw-r--r--src/bin/eolian_cxx/type_lookup.hh1
-rw-r--r--src/bin/eolian_cxx/type_lookup_table.cc33
-rw-r--r--src/lib/eolian_cxx/eo_types.hh8
3 files changed, 24 insertions, 18 deletions
diff --git a/src/bin/eolian_cxx/type_lookup.hh b/src/bin/eolian_cxx/type_lookup.hh
index 006201c122..1b64bbb20b 100644
--- a/src/bin/eolian_cxx/type_lookup.hh
+++ b/src/bin/eolian_cxx/type_lookup.hh
@@ -35,6 +35,7 @@ type_from_eolian(Eolian_Type const& type)
efl::eolian::eolian_type x;
x.native = normalize_spaces(safe_str(::eolian_type_c_type_get(&type)));
x.is_own = ::eolian_type_is_own(&type);
+ x.is_const = ::eolian_type_is_const(&type);
return x;
}
diff --git a/src/bin/eolian_cxx/type_lookup_table.cc b/src/bin/eolian_cxx/type_lookup_table.cc
index bb14d95f1f..d4e7c1e9d6 100644
--- a/src/bin/eolian_cxx/type_lookup_table.cc
+++ b/src/bin/eolian_cxx/type_lookup_table.cc
@@ -13,24 +13,25 @@ type_lookup_table
{"Ecore_Task_Cb", eolian_type::callback_, {"Ecore.h"}},
{"Ecore_Timeline_Cb", eolian_type::callback_, {"Ecore.h"}},
{"Edje_Signal_Cb", eolian_type::callback_, {"Edje.h"}},
- {"Eina_Accessor *", eolian_type::complex_, false, "efl::eina::accessor", {"eina-cxx/eina_accessor.hh"}},
- {"Eina_Bool", eolian_type::simple_, false, "bool", {}},
- {"Eina_Bool *", eolian_type::simple_, false, "bool*", {}},
- {"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_list", {"eina-cxx/eina_list.hh"}},
- {"Eina_List *", eolian_type::complex_, true, "efl::eina::list", {"eina-cxx/eina_list.hh"}},
+ {"Eina_Accessor *", eolian_type::complex_, false, false, "efl::eina::accessor", {"eina-cxx/eina_accessor.hh"}},
+ {"Eina_Bool", eolian_type::simple_, false, false, "bool", {}},
+ {"Eina_Bool *", eolian_type::simple_, false, false, "bool*", {}},
+ {"Eina_Inlist *", eolian_type::complex_, false, false, "efl::eina::range_inlist", {"eina-cxx/eina_inlist.hh"}},
+ {"Eina_Inlist *", eolian_type::complex_, false, true, "efl::eina::inlist", {"eina-cxx/eina_inlist.hh"}},
+ {"Eina_Iterator *", eolian_type::complex_, false, false, "efl::eina::iterator", {"eina-cxx/eina_iterator.hh"}},
+ {"Eina_List *", eolian_type::complex_, false, false, "efl::eina::range_list", {"eina-cxx/eina_list.hh"}},
+ {"Eina_List *", eolian_type::complex_, false, true, "efl::eina::list", {"eina-cxx/eina_list.hh"}},
+ {"const Eina_List *", eolian_type::complex_, true, false, "efl::eina::crange_list", {"eina-cxx/eina_list.hh"}},
{"Eio_Filter_Direct_Cb", eolian_type::callback_, {"Eio.h"}},
- {"Emodel *", eolian_type::simple_, false, "emodel", {"Emodel.hh"}},
- {"Eo *", eolian_type::simple_, true, "efl::eo::base", {"eo_base.hh"}},
- {"Eo *", eolian_type::simple_, false, "efl::eo::base", {"eo_base.hh"}},
+ {"Emodel *", eolian_type::simple_, false, false, "emodel", {"Emodel.hh"}},
+ {"Eo *", eolian_type::simple_, false, true, "efl::eo::base", {"eo_base.hh"}},
+ {"Eo *", eolian_type::simple_, false, false, "efl::eo::base", {"eo_base.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::crange_list", {"eina-cxx/eina_ptrlist.hh"}},
- {"const char *", eolian_type::simple_, false, "std::string", {"string"}}
+ {"Evas_Object *", eolian_type::simple_, false, false, "evas::object", {"canvas/evas_object.eo.hh"}},
+ {"char *", eolian_type::simple_, false, true, "std::unique_ptr<char*>", {"memory"}},
+ {"const Eina_Inlist *", eolian_type::complex_, false, false, "efl::eina::range_inlist", {"eina-cxx/eina_inlist.hh"}},
+ {"const Eina_List *", eolian_type::complex_, false, false, "efl::eina::range_list", {"eina-cxx/eina_ptrlist.hh"}},
+ {"const char *", eolian_type::simple_, false, false, "std::string", {"string"}},
};
}
diff --git a/src/lib/eolian_cxx/eo_types.hh b/src/lib/eolian_cxx/eo_types.hh
index 3ce3e0914a..92237790d2 100644
--- a/src/lib/eolian_cxx/eo_types.hh
+++ b/src/lib/eolian_cxx/eo_types.hh
@@ -31,6 +31,7 @@ struct eolian_type
eolian_type()
: native("")
, category(unknown_)
+ , is_const(false)
, is_own(false)
, binding()
, includes()
@@ -38,11 +39,13 @@ struct eolian_type
eolian_type(std::string native_,
category_type category_,
+ bool is_const_,
bool is_own_,
std::string binding_,
includes_container_type includes_)
: native(native_)
, category(category_)
+ , is_const(is_const_)
, is_own(is_own_)
, binding(binding_)
, includes(includes_)
@@ -54,13 +57,14 @@ struct eolian_type
eolian_type(std::string native_,
category_type category_,
includes_container_type const& includes_)
- : eolian_type(native_, category_, false, "", includes_)
+ : eolian_type(native_, category_, false, false, "", includes_)
{
assert(category == callback_);
}
std::string native;
category_type category;
+ bool is_const;
bool is_own;
std::string binding;
includes_container_type includes;
@@ -69,7 +73,7 @@ struct eolian_type
typedef std::vector<eolian_type> eolian_type_instance;
const efl::eolian::eolian_type
-void_type { "void", efl::eolian::eolian_type::simple_, false, "", {} };
+void_type { "void", efl::eolian::eolian_type::simple_, false, false, "", {} };
inline bool
type_is_void(eolian_type_instance const& type)