From 637a97a0f5e2552659a7ab7c21959387e786b453 Mon Sep 17 00:00:00 2001 From: Felipe Magno de Almeida Date: Wed, 16 Jul 2014 20:17:10 -0300 Subject: [PATCH] eolian-cxx: Fixed using eo::base for extension_inheritance Extended the logic for rewriting the eo::base to efl::eo::base for parents to extension inheritance. --- src/bin/eolian_cxx/convert.cc | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/bin/eolian_cxx/convert.cc b/src/bin/eolian_cxx/convert.cc index f52affa7db..71311886be 100644 --- a/src/bin/eolian_cxx/convert.cc +++ b/src/bin/eolian_cxx/convert.cc @@ -155,6 +155,14 @@ convert_eolian_property_to_functions(Eolian_Class const& klass) return container; } +std::string get_class_name(std::string const& name) +{ + // "eo_base" is the Eolian name for EO_BASE_CLASS. + return (name == "eo_base" || name == "eo::base" || name == "") + ? "efl::eo::base" + : name; +} + void convert_eolian_inheritances(efl::eolian::eo_class& cls, Eolian_Class const& klass) { @@ -171,21 +179,18 @@ convert_eolian_inheritances(efl::eolian::eo_class& cls, Eolian_Class const& klas } else { + // First element is the parent const char *ptr = static_cast (eina_list_data_get(inheritances)); - std::string parent = class_format_cxx(safe_lower(ptr)); + cls.parent = get_class_name(class_format_cxx(safe_lower(ptr))); - // "eo_base" is the Eolian name for EO_BASE_CLASS. - cls.parent = - (parent == "eo_base" || parent == "eo::base" || parent == "") - ? "efl::eo::base" - : parent; - } - inheritances = eina_list_next(inheritances); - EINA_LIST_FOREACH (inheritances, it, curr) - { - std::string extension = safe_lower(static_cast(curr)); - cls.extensions.push_back(class_format_cxx(extension)); + inheritances = eina_list_next(inheritances); + + EINA_LIST_FOREACH (inheritances, it, curr) + { + std::string extension = safe_lower(static_cast(curr)); + cls.extensions.push_back(get_class_name(class_format_cxx(extension))); + } } }