felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=16986ffc7aded1e8baf1eb36227d425cc30d8f03
commit 16986ffc7aded1e8baf1eb36227d425cc30d8f03 Author: Lauro Moura <[email protected]> Date: Wed Aug 17 20:53:56 2016 -0300 eolian_cxx: Fix behavior with explicit void return Only perform the single value/return type substitution on properties if the void return type is implicit (i.e. NULL return from function_return_type_get), following the eolian-C implementation as we use the generated headers. Also update example after Eo-Efl changes. --- src/examples/eolian_cxx/colourable_cxx.cc | 4 ++-- src/lib/eolian_cxx/grammar/klass_def.hpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/examples/eolian_cxx/colourable_cxx.cc b/src/examples/eolian_cxx/colourable_cxx.cc index 30f1bb3..66c0d89 100644 --- a/src/examples/eolian_cxx/colourable_cxx.cc +++ b/src/examples/eolian_cxx/colourable_cxx.cc @@ -24,14 +24,14 @@ _colourable_eo_base_constructor(Eo *obj, Colourable_Data *self) { EINA_CXX_DOM_LOG_DBG(domain) << __func__ << std::endl; self->r = self->g = self->b = 0; - return eo_constructor(eo_super(obj, MY_CLASS)); + return efl_constructor(efl_super(obj, MY_CLASS)); } void _colourable_eo_base_destructor(Eo *obj, Colourable_Data *self EINA_UNUSED) { EINA_CXX_DOM_LOG_DBG(domain) << __func__ << std::endl; - eo_destructor(eo_super(obj, MY_CLASS)); + efl_destructor(efl_super(obj, MY_CLASS)); } void diff --git a/src/lib/eolian_cxx/grammar/klass_def.hpp b/src/lib/eolian_cxx/grammar/klass_def.hpp index 0c5d820..cafb56d 100644 --- a/src/lib/eolian_cxx/grammar/klass_def.hpp +++ b/src/lib/eolian_cxx/grammar/klass_def.hpp @@ -424,7 +424,7 @@ struct function_def values.push_back(&*param_iterator); } - if(type == EOLIAN_PROP_GET && values.size() == 1 && return_type == void_) + if(!r_type && type == EOLIAN_PROP_GET && values.size() == 1) { return_type = values[0].type; } --
