eo: Remove lock from efl_super
authorJean-Philippe Andre <jp.andre@samsung.com>
Tue, 18 Apr 2017 10:57:53 +0000 (19:57 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Wed, 19 Apr 2017 02:04:12 +0000 (11:04 +0900)
commit85636658e00de58db1a3c5f8b03e495a5ad1bda8
tree038bb414e0de4f636f7bc307fb7040962cd9a620
parentc9469e0b011c1e4ee2f5e86e5df2a334820b6c6a
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)
src/lib/eo/eo.c
src/lib/eo/eo_private.h