summaryrefslogtreecommitdiff
path: root/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh
diff options
context:
space:
mode:
authorFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2014-07-18 17:57:04 -0300
committerFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2014-07-18 19:00:35 -0300
commitc1e8918b88dd2b069b62c8b2798df72a2c8c0a29 (patch)
tree03a123be3125a0241c5ba0499dbd03a95b68ca19 /src/lib/eolian_cxx/grammar/inheritance_base_generator.hh
parent9c6c7728c0c1bf18018a2da7b33d55f128c527b1 (diff)
eolian-cxx: Fixed inheritance feature with callbacks
The addition of callbacks was making the inheritance to fail. Fixed generation by using the C types, instead of the abstracted callback types for the wrapper functions.
Diffstat (limited to 'src/lib/eolian_cxx/grammar/inheritance_base_generator.hh')
-rw-r--r--src/lib/eolian_cxx/grammar/inheritance_base_generator.hh16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh b/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh
index 8fe6e0969c..c7aaa8db04 100644
--- a/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh
+++ b/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh
@@ -188,7 +188,7 @@ operator<<(std::ostream& out, inheritance_base_operations_function const& x)
188 188
189 out << tab(2) << "virtual " << reinterpret_type(func.ret) << " " 189 out << tab(2) << "virtual " << reinterpret_type(func.ret) << " "
190 << func.name << "(" 190 << func.name << "("
191 << parameters_declaration(func.params) << ")" << endl 191 << parameters_c_declaration(func.params) << ")" << endl
192 << tab(2) << "{" << endl; 192 << tab(2) << "{" << endl;
193 if (!is_void) 193 if (!is_void)
194 { 194 {
@@ -196,9 +196,12 @@ operator<<(std::ostream& out, inheritance_base_operations_function const& x)
196 } 196 }
197 out << tab(3) 197 out << tab(3)
198 << "eo_do_super(static_cast<T*>(this)->_eo_ptr()" << endl 198 << "eo_do_super(static_cast<T*>(this)->_eo_ptr()" << endl
199 << tab(4) << ", static_cast<T*>(this)->_eo_class()" << endl 199 << tab(4) << ", static_cast<T*>(this)->_eo_class()," << endl
200 << tab(4) << ", " << function_call(func) 200 << tab(4) << (!is_void ? "_tmp_ret = " : "")
201 << ");" << endl; 201 << "::" << x._func.impl
202 << "(";
203 parameter_names_enumerate(out, func.params)
204 << "));" << endl;
202 if (!is_void) 205 if (!is_void)
203 { 206 {
204 out << tab(3) << "return _tmp_ret;" << endl; 207 out << tab(3) << "return _tmp_ret;" << endl;
@@ -399,17 +402,12 @@ operator<<(std::ostream& out, inheritance_eo_class_getter const& x)
399inline void 402inline void
400eo_inheritance_detail_generator(std::ostream& out, eo_class const& cls) 403eo_inheritance_detail_generator(std::ostream& out, eo_class const& cls)
401{ 404{
402#if 0 // Will be fixed ASAP
403 out << inheritance_wrappers(cls) 405 out << inheritance_wrappers(cls)
404#endif
405 out
406 << "namespace efl { namespace eo { namespace detail {" << endl << endl 406 << "namespace efl { namespace eo { namespace detail {" << endl << endl
407#if 0 // Will be fixed ASAP
408 << inheritance_base_operations(cls) << endl 407 << inheritance_base_operations(cls) << endl
409 << inheritance_base_operations_size(cls) 408 << inheritance_base_operations_size(cls)
410 << inheritance_operations_description(cls) 409 << inheritance_operations_description(cls)
411 << inheritance_call_constructors(cls) 410 << inheritance_call_constructors(cls)
412#endif
413 << inheritance_extension(cls) 411 << inheritance_extension(cls)
414 << inheritance_eo_class_getter(cls) 412 << inheritance_eo_class_getter(cls)
415 << "} } }" << endl; 413 << "} } }" << endl;