efl/src/lib/eo
Marcel Hollerbach 37d2d378ec eolian: drop class function overriding
Until this commit eo did class functions as part of the vtable, which
enabled those functions to be overwritten in classes inheriting another
class. However in task T7675 we decided that this is not really good for
bindings, as most OOP languages do not support this sort of feature.

After this commit eolian realizes class function completly outside of
the vtable, the c-symbol that is the class funciton is now just directly
redirecting to a implementation, without the involvement of the vtable.

This also means a change to the syntax created by eo:

Calling before:
  class_function(CLASS_A);
Calling after:
   class_function();

Implementation before:
   class_function(const Eo *obj, void *pd) { ... }
Implementation after:
   class_function(void) { ... }

This fixes T7675.

Co-authored-by: lauromauro <lauromoura@expertisesolutions.com.br>

Reviewed-by: Daniel Kolesa <daniel@octaforge.org>
Differential Revision: https://phab.enlightenment.org/D7901
2019-02-13 16:59:58 +01:00
..
Eo.h eo: lets drop efl_interfaces 2019-02-08 10:27:27 +01:00
efl_class.eo eolian: implement new syntax for inheritance 2018-11-23 13:57:07 +01:00
efl_object.eo docs: Update efl_object lifecycle docs 2019-02-11 14:16:48 +01:00
efl_object_override.eo eolian: implement new syntax for inheritance 2018-11-23 13:57:07 +01:00
eina_types.eot efl: add free functions to owned types 2019-01-22 14:02:37 +01:00
eo.c eo: efl_isa with a EFL_OVERRIDE_CLASS should return true 2019-02-12 11:20:21 +01:00
eo_add_fallback.c mmap memory allocation - do not used when under valgrind 2018-01-12 03:02:43 +09:00
eo_add_fallback.h Eo: Finish the renaming of Eo to the EFL. 2016-08-15 15:07:42 +01:00
eo_base_class.c eolian: drop class function overriding 2019-02-13 16:59:58 +01:00
eo_class_class.c eo: lets drop efl_interfaces 2019-02-08 10:27:27 +01:00
eo_internal.h eo: move EFL internal function ___efl_ref2 also to eo_internal.h 2018-05-24 16:02:18 -07:00
eo_private.h eo: fix typo 2019-02-12 11:20:21 +01:00
eo_ptr_indirection.c eo: Improve invalid EO ID error message 2017-06-22 13:19:23 +09:00
eo_ptr_indirection.h eo: repair EO_CLASS_POINTER macros 2019-02-06 10:00:57 +01:00
eo_ptr_indirection.x mmap memory allocation - do not used when under valgrind 2018-01-12 03:02:43 +09:00
meson.build build: also build eo-tests with debug profile 2019-02-12 16:24:24 +01:00