efl/src/lib/eo
Jean-Philippe Andre 85636658e0 eo: Remove lock from efl_super
I've always really disliked this lock. If someone calls a non-eo
function by accident with efl_super() then you'll most likely end
up in a deadlock.

This adds the cur_klass pointer to the object itself, exploiting
the fact that we have 8 bytes of padding (on 64 bits, at least).

Also, this opens the door to efl_cast() which would be similar to
efl_super() except that only a dynamic cast is done, not a call
to the parent function.

make benchmark shows a performance improvement, surprisingly.

This is a bit experimental. See also the following commit (efl_cast)
2017-04-19 11:04:12 +09:00
..
CMakeLists.txt cmake/eo: add description (fills eo.pc file) 2017-01-23 19:34:39 -02:00
Eo.h eo - remove the spare eo domain for now for future expansion 2017-01-12 13:08:57 +09:00
efl_class.eo docs: eo: finish up docs for eo 2016-11-10 15:14:42 +01:00
efl_future.c Efl_Future: class name (string) using "." for namespace. 2016-12-12 02:30:33 -02:00
efl_future.h eo: add missing since tags for functions added during 1.19 cycle 2017-02-14 21:47:15 +01:00
efl_interface.eo Eo: Rename most of Eo to the Efl prefix. 2016-08-11 17:04:43 +01:00
efl_object.eo efl_object: document when callbacks are called 2017-02-10 18:50:41 +01:00
efl_object_override.eo Eo: Rename most of Eo to the Efl prefix. 2016-08-11 17:04:43 +01:00
eina_types.eot docs: eina: add doc for new eina value type 2017-02-09 14:47:22 +01:00
eo.c eo: Remove lock from efl_super 2017-04-19 11:04:12 +09:00
eo_add_fallback.c all: use void if we really want to make sure we do not accept parameters 2016-12-06 17:16:24 +01: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 eo: Use COW to save 8~16 bytes per object 2017-04-18 18:52:27 +09:00
eo_class_class.c Eo: Rename most of Eo to the Efl prefix. 2016-08-11 17:04:43 +01:00
eo_private.h eo: Remove lock from efl_super 2017-04-19 11:04:12 +09:00
eo_ptr_indirection.c eo: Make _eo_obj_pointer_done an inline function 2017-02-21 10:52:39 +09:00
eo_ptr_indirection.h eo: allow valgrind-like tracking of object lifecycle. 2016-12-02 21:15:17 -02:00
eo_ptr_indirection.x eo: Make _eo_obj_pointer_done an inline function 2017-02-21 10:52:39 +09:00