diff options
author | Lauro Moura <lauromoura@expertisesolutions.com.br> | 2017-06-12 22:39:03 -0300 |
---|---|---|
committer | Lauro Moura <lauromoura@expertisesolutions.com.br> | 2017-06-12 22:42:54 -0300 |
commit | 697c22c047a7bb50c7e51538d75f933964cd74e6 (patch) | |
tree | 62d99b40f44c3b376e1679f42a248997bb9e4626 | |
parent | 60ffcbdd9eb723c1c672e6832921141d14fd9f06 (diff) | |
download | efl-697c22c047a7bb50c7e51538d75f933964cd74e6.tar.gz |
eolian_mono: Declare native retvar with default
More preparation for the try/catch on native wrappers.
-rw-r--r-- | src/bin/eolian_mono/eolian/mono/function_definition.hh | 2 | ||||
-rw-r--r-- | src/bin/eolian_mono/eolian/mono/function_helpers.hh | 2 | ||||
-rw-r--r-- | src/bin/eolian_mono/eolian/mono/parameter.hh | 4 |
3 files changed, 5 insertions, 3 deletions
diff --git a/src/bin/eolian_mono/eolian/mono/function_definition.hh b/src/bin/eolian_mono/eolian/mono/function_definition.hh index 087125f537..bc8244162f 100644 --- a/src/bin/eolian_mono/eolian/mono/function_definition.hh +++ b/src/bin/eolian_mono/eolian/mono/function_definition.hh @@ -66,7 +66,7 @@ struct native_function_definition_generator << scope_tab << scope_tab << "efl.eo.IWrapper wrapper = efl.eo.Globals.data_get(pd);\n" << scope_tab << scope_tab << "if(wrapper != null) {\n" << scope_tab << scope_tab << scope_tab << eolian_mono::native_function_definition_preamble() - << "((" << string << "Inherit)wrapper)." << string + << scope_tab << scope_tab << scope_tab << (return_type != "void" ? "_ret_var = " : "") << "((" << string << "Inherit)wrapper)." << string << "(" << (native_argument_invocation % ", ") << ");\n" << eolian_mono::native_function_definition_epilogue(*klass) << scope_tab << scope_tab << "} else {\n" diff --git a/src/bin/eolian_mono/eolian/mono/function_helpers.hh b/src/bin/eolian_mono/eolian/mono/function_helpers.hh index 459f4e6d74..c6c93deb03 100644 --- a/src/bin/eolian_mono/eolian/mono/function_helpers.hh +++ b/src/bin/eolian_mono/eolian/mono/function_helpers.hh @@ -47,7 +47,7 @@ struct native_function_definition_preamble_generator << scope_tab << scope_tab << "//Function pointer wrappers\n" << *(scope_tab << scope_tab << native_convert_function_pointer << "\n") << scope_tab << scope_tab << "//Return variable and function call\n" - << scope_tab << scope_tab << native_convert_return_variable + << scope_tab << scope_tab << scope_tab << native_convert_return_variable << "\n" ).generate(sink, std::make_tuple(f.parameters, f.parameters, f.parameters, f.return_type), context)) return false; diff --git a/src/bin/eolian_mono/eolian/mono/parameter.hh b/src/bin/eolian_mono/eolian/mono/parameter.hh index cd81f23530..4a5e2501b5 100644 --- a/src/bin/eolian_mono/eolian/mono/parameter.hh +++ b/src/bin/eolian_mono/eolian/mono/parameter.hh @@ -896,7 +896,9 @@ struct native_convert_return_variable_generator bool generate(OutputIterator sink, attributes::type_def const& ret_type, Context const& context) const { if (ret_type.c_type != "void") - return as_generator("var _ret_var = ").generate(sink, attributes::unused, context); + return as_generator( + type << " _ret_var = default(" << type << ");" + ).generate(sink, std::make_tuple(ret_type, ret_type), context); return true; } |