Jérémy Zurcher [Thu, 7 Nov 2013 23:50:05 +0000 (00:50 +0100)]
eo2: fix some op descriptions in constructors tests
Jérémy Zurcher [Thu, 7 Nov 2013 23:49:05 +0000 (00:49 +0100)]
eo2: add EO2_CLASS_DESCRIPTION_NOOPS() macros
Jérémy Zurcher [Thu, 7 Nov 2013 23:42:42 +0000 (00:42 +0100)]
eo2: fix mixim elaboration
a mixin class must not inherit
- _eo2_api_desc_get()
accept NULL klass param
EO_CLASS_TYPE_REGULAR_NO_INSTANT is an acceptable extension class type for
- _eo2_class_funcs_set() do not shout if parent is NULL
Jérémy Zurcher [Thu, 7 Nov 2013 23:09:47 +0000 (00:09 +0100)]
eo2: fix tests, do not use _CLASS_FUNC_, see previous commit
Jérémy Zurcher [Thu, 7 Nov 2013 22:38:36 +0000 (23:38 +0100)]
eo2: remove EO2_CLASS_FUNC_* macros
there is no more difference in class or regular functions prototypes and definitions
- eo2_api_op_id_get() uses _eo_is_a_class() at runtime
- add 'void *class_data EINA_UNUSED' parameter to eo2_base class functions
- Eo2_Op_Call_Data.klass is kept only for eo2_hook_call_pre end eo2_hook_call_post,
but could be removed easily
Tom Hacohen [Thu, 7 Nov 2013 18:00:14 +0000 (18:00 +0000)]
eo2 test composite: migrated things I forgot to migrate.
Tom Hacohen [Thu, 7 Nov 2013 17:49:51 +0000 (17:49 +0000)]
eo2 base class: fixed regular and class event functions confusion.
Tom Hacohen [Thu, 7 Nov 2013 17:47:34 +0000 (17:47 +0000)]
eo2: migrated signals test to eo2.
Tom Hacohen [Thu, 7 Nov 2013 17:20:11 +0000 (17:20 +0000)]
eo2: migrated interface test to eo2.
Tom Hacohen [Thu, 7 Nov 2013 17:00:09 +0000 (17:00 +0000)]
eo2: migrated function_overrides test to eo2.
Tom Hacohen [Thu, 7 Nov 2013 16:55:26 +0000 (16:55 +0000)]
eo2: fixed EO2_VOID_CLASS_FUNC_BODY function.
Tom Hacohen [Thu, 7 Nov 2013 16:06:51 +0000 (16:06 +0000)]
eo2: migrated constructors test to eo2.
Tom Hacohen [Thu, 7 Nov 2013 15:28:55 +0000 (15:28 +0000)]
eo2: migrated the composite test to eo2.
Tom Hacohen [Thu, 7 Nov 2013 15:24:20 +0000 (15:24 +0000)]
eo2: improved error messages on failed resolves.
Tom Hacohen [Thu, 7 Nov 2013 14:47:58 +0000 (14:47 +0000)]
eo2: access tests makeup
Tom Hacohen [Thu, 7 Nov 2013 13:56:34 +0000 (13:56 +0000)]
eo2: changed Eo class names to be consistent.
All the class names are now of the format: Lib_Type_Subtype_Extra.
Jérémy Zurcher [Thu, 26 Dec 2013 23:33:49 +0000 (00:33 +0100)]
eo2: add EO2_CLASS_CLASS
Jérémy Zurcher [Sat, 12 Oct 2013 22:28:40 +0000 (00:28 +0200)]
eo2: base class op_descs must be static
Jérémy Zurcher [Thu, 3 Oct 2013 12:30:31 +0000 (14:30 +0200)]
eo2: support composites object
_eo2_api_desc_get() searches extensions classes
eo2_call_resolve() searches composites objects
Jérémy Zurcher [Thu, 26 Dec 2013 23:18:45 +0000 (00:18 +0100)]
eo2: optimize eo2_call_resolve and call stack
Jérémy Zurcher [Thu, 3 Oct 2013 12:17:03 +0000 (14:17 +0200)]
eo2: fix eo_base_data_get(), eo_composite_attach(), eo_composite_detach()
Jérémy Zurcher [Wed, 2 Oct 2013 12:57:45 +0000 (14:57 +0200)]
eo2: clean up and speed up call stack usage
Jérémy Zurcher [Thu, 26 Dec 2013 23:00:11 +0000 (00:00 +0100)]
eo2: eo2_add_internal_start use trash and fix MAGIC
Jérémy Zurcher [Wed, 2 Oct 2013 09:47:10 +0000 (11:47 +0200)]
eo2: eo2_do() and eo2_do_super() supports objects and classes
Jérémy Zurcher [Wed, 2 Oct 2013 08:44:33 +0000 (10:44 +0200)]
eo2: rewrite eo2_do_start(...)
we need Eo_Class *cur_klass for eo2_do_super
be sure not to update stack pointer before we can't fail anymore
Jérémy Zurcher [Thu, 26 Dec 2013 22:46:50 +0000 (23:46 +0100)]
eo2: change a few variable names
in the EPAI, don't show that Eo* could be IDs.
in the implementation, use klass_id and obj_id
if you know or want it to be a class or an object,
use eo_id in general cases.
Jérémy Zurcher [Thu, 26 Dec 2013 20:11:48 +0000 (21:11 +0100)]
eo2: add eo2_parent_set(), eo2_parent_get(), eo2_children_iterator_new()
imported from eo_base_class.c as is in
a7f417e 2013-12-24 23:45:30 +0900 <Carsten Haitzler (Rasterman)>
Jérémy Zurcher [Thu, 26 Dec 2013 20:00:23 +0000 (21:00 +0100)]
eo2: formatting
Jérémy Zurcher [Thu, 26 Dec 2013 19:56:59 +0000 (20:56 +0100)]
eo2: import
cecd1980, calloc and realloc failure protections
Jérémy Zurcher [Thu, 26 Dec 2013 19:42:18 +0000 (20:42 +0100)]
eo2: minor fixes after huge rebase
indentation
use _Eo_Object * instead of _Eo *
use EO_CLASS_POINTER_RETURN_VAL(), _eo_id_get(), and _eo_class_id_get().
Jérémy Zurcher [Fri, 6 Sep 2013 09:38:25 +0000 (11:38 +0200)]
eo2: eo2_do_start use EO_OBJ_POINTER_ macros not _eo_obj_pointer_get
Jérémy Zurcher [Sun, 1 Sep 2013 21:48:57 +0000 (23:48 +0200)]
eo2: eo2_call_resolve_internal support undef HAVE_EO_ID
Jérémy Zurcher [Wed, 14 Aug 2013 11:48:54 +0000 (13:48 +0200)]
eo2: _eo2_api_desc_get: walks in mro not in klass->parent
Jérémy Zurcher [Wed, 14 Aug 2013 11:46:49 +0000 (13:46 +0200)]
eo2: rename eo2 class 'Eo Base'->'Eo2 Base'
Jérémy Zurcher [Wed, 14 Aug 2013 11:46:06 +0000 (13:46 +0200)]
eo2: add DBG msg in eo2_class_funcs_set
Cedric Bail [Mon, 5 Aug 2013 06:13:21 +0000 (15:13 +0900)]
eo2: memset will be faster, still why not using NULL instead of -1 ?
Cedric Bail [Mon, 5 Aug 2013 03:05:49 +0000 (12:05 +0900)]
eo2: we can rely on LD_PRELOAD for those hook, so removing them.
Jérémy Zurcher [Thu, 1 Aug 2013 13:41:12 +0000 (15:41 +0200)]
eo2: add EO2_HOOK_DO_PREPARE
Cedric Bail [Thu, 1 Aug 2013 09:49:27 +0000 (18:49 +0900)]
eo2: add hook for beinning and start of all function execution and for all _do.
NOTE: I don't know what the _CLASS_FUNC are, so I may have broken stuff there.
Jérémy Zurcher [Thu, 1 Aug 2013 07:47:21 +0000 (09:47 +0200)]
eo2: fix eo2 custom constructors
Jérémy Zurcher [Thu, 26 Dec 2013 15:33:18 +0000 (16:33 +0100)]
eo2: sprinkle with 'const'
Jérémy Zurcher [Wed, 31 Jul 2013 21:37:06 +0000 (23:37 +0200)]
eo2: fixed EO2_CLASS_FUNC_BODY and etc. functions.
Tom Hacohen [Wed, 31 Jul 2013 16:20:40 +0000 (17:20 +0100)]
eo2: revert "fixed EO2_CLASS_FUNC_BODY and etc. functions."
Still need to change it to get call earlier. Oversight because
of incomplete make files.
This reverts commit
1ea966c3bef7384a91e386477dc07015ed18d33f.
Tom Hacohen [Wed, 31 Jul 2013 16:16:59 +0000 (17:16 +0100)]
eo2: fixed EO2_CLASS_FUNC_BODY and etc. functions.
Jérémy Zurcher [Wed, 31 Jul 2013 07:59:15 +0000 (09:59 +0200)]
eo2: remove EO2_OP_FUNC_VIRTUAL
a pure virtual function is an EO2_OP_FUNC
with NULL as private function implementation pointer
Tom Hacohen [Tue, 30 Jul 2013 16:22:26 +0000 (17:22 +0100)]
eo2: fix backslash alignment.
This is one of the reasons why I hate backslash alignments, you end up
fixing style when you should be working on code.
Tom Hacohen [Tue, 30 Jul 2013 15:08:25 +0000 (16:08 +0100)]
eo2: updated the access test to use eo2.
Tom Hacohen [Tue, 30 Jul 2013 13:12:03 +0000 (14:12 +0100)]
eo2: revert "eo2_add accepts non-defauld constructors"
We want to have normal functions as non-default constructors, not va_arg
ones. What we should do is split the object creation to two parts again.
The creation, the constructing (changes using the macro) and the
verification/end part that checks the constructor has been called.
This reverts commit
2ff2ce1894f173b306a896bda595e1a7768c074d.
Jérémy Zurcher [Tue, 30 Jul 2013 13:02:35 +0000 (15:02 +0200)]
eo2: implement class function support
Jérémy Zurcher [Mon, 29 Jul 2013 21:57:45 +0000 (23:57 +0200)]
eo2: eo_del_internal use same logic as in eo_add_internal
Jérémy Zurcher [Mon, 29 Jul 2013 21:52:46 +0000 (23:52 +0200)]
eo2: fix indent
Jérémy Zurcher [Thu, 26 Dec 2013 15:23:55 +0000 (16:23 +0100)]
eo2: eo2_add accepts non-defauld constructors
Jérémy Zurcher [Mon, 29 Jul 2013 20:13:13 +0000 (22:13 +0200)]
eo2: call _eo2_class_funcs_set from _eo_class_constructor
Tom Hacohen [Mon, 29 Jul 2013 16:50:56 +0000 (17:50 +0100)]
eo2: cleaned up EO2_CLASS_DESCRIPTION_OPS and OP_DESC_SIZE (renamed).
Tom Hacohen [Mon, 29 Jul 2013 16:32:20 +0000 (17:32 +0100)]
eo2: fixed dbg_info_get function to accept the correct number of params.
Tom Hacohen [Mon, 29 Jul 2013 15:11:47 +0000 (16:11 +0100)]
eo2: cleaned up eo2_do macros.
cleaned up the cleanup attribute usage.
don't use objid more than once (it's a macro).
Jérémy Zurcher [Thu, 26 Dec 2013 15:16:55 +0000 (16:16 +0100)]
eo2: do not call eo2_do_end() if eo2_do_start() fail
Jérémy Zurcher [Wed, 25 Dec 2013 15:22:42 +0000 (16:22 +0100)]
eo2: eo2_do() uses __attribute__ cleanup
to protect us against bad use of break, goto, return ... in eo2_do,
we use __attribute__((cleanup(eo2_do_end))) to ensure that eo2_do_end()
is called whatever.
Jérémy Zurcher [Sat, 27 Jul 2013 20:46:50 +0000 (22:46 +0200)]
eo2: add eo2_call_stack_depth
Jérémy Zurcher [Sat, 27 Jul 2013 20:42:24 +0000 (22:42 +0200)]
eo2: EO2_CALL_STACK_SIZE -> EO2_CALL_STACK_DEPTH
Jérémy Zurcher [Fri, 26 Jul 2013 15:14:52 +0000 (17:14 +0200)]
eo2: add virtual func support
Tom Hacohen [Fri, 26 Jul 2013 09:29:54 +0000 (10:29 +0100)]
eo2: compile eo2_base_class when compiling libeo.
Tom Hacohen [Fri, 26 Jul 2013 09:27:08 +0000 (10:27 +0100)]
eo2: explicitly put void as the arguments in a zero argument function (macro).
Jérémy Zurcher [Fri, 26 Jul 2013 06:39:34 +0000 (08:39 +0200)]
eo2: _eo2_api_desc_get() searches the class hierarchy
Jérémy Zurcher [Fri, 26 Jul 2013 01:05:06 +0000 (03:05 +0200)]
eo2: oops, forgot to init desc to NULL in eo2_api_op_id_get()
Jérémy Zurcher [Fri, 26 Jul 2013 00:47:59 +0000 (02:47 +0200)]
eo2: can't detect return in a eo2_do macro, *sigh*
Jérémy Zurcher [Fri, 26 Jul 2013 00:34:46 +0000 (02:34 +0200)]
eo2: eo2_base_class uses eo2 stuff only, I hope
Jérémy Zurcher [Fri, 26 Jul 2013 00:34:16 +0000 (02:34 +0200)]
eo2: eo2_api_op_id_get search in parent klasses too
Jérémy Zurcher [Wed, 25 Dec 2013 15:14:55 +0000 (16:14 +0100)]
eo2: EO2_OP_FUNC_OVERRIDE copy doc from overriden func
Jérémy Zurcher [Wed, 25 Dec 2013 15:13:14 +0000 (16:13 +0100)]
eo2: set eo2_constructor and eo2_destructor chaining
Jérémy Zurcher [Wed, 24 Jul 2013 22:11:00 +0000 (22:11 +0000)]
eo2: use EO2_VERSION
Jérémy Zurcher [Wed, 24 Jul 2013 22:10:26 +0000 (22:10 +0000)]
eo2: add cur_klass in call Stack and eo2_do_super
in eo2_do_start(), reuse previous stack fetched pointers when possible
Jérémy Zurcher [Wed, 24 Jul 2013 22:08:37 +0000 (22:08 +0000)]
eo2: improve func overriding
add klass_id parameter to eo2_get_op_id()
in op descriptions, allow NULL fct pointer for virtual,
and use EO2_OP_OVERRIDE to declare overriding.
Jérémy Zurcher [Wed, 24 Jul 2013 22:01:14 +0000 (22:01 +0000)]
eo2: eo2_base_class, one step further
Jérémy Zurcher [Wed, 25 Dec 2013 14:19:07 +0000 (15:19 +0100)]
eo2: Eo.h swallows eo2_base_class.h
Jérémy Zurcher [Wed, 25 Dec 2013 14:16:34 +0000 (15:16 +0100)]
eo2: call stack Proof Of Concept
no grow/shrink or thread local storage
Jérémy Zurcher [Wed, 25 Dec 2013 14:13:41 +0000 (15:13 +0100)]
eo2: eo2_base_class on it's way
Jérémy Zurcher [Wed, 25 Dec 2013 14:12:06 +0000 (15:12 +0100)]
eo2: better op_descs integration
struct _Eo_Class_Description swallows
Eo2_Op_Description *descs2;
Jérémy Zurcher [Wed, 25 Dec 2013 14:10:42 +0000 (15:10 +0100)]
eo2: use EO2 instead of EO in macro names
Jérémy Zurcher [Wed, 25 Dec 2013 14:09:16 +0000 (15:09 +0100)]
eo2: add EO_FUNC_BODY_VOID and EO_FUNC_BODY_VOIDV macros
Jérémy Zurcher [Mon, 22 Jul 2013 17:31:58 +0000 (17:31 +0000)]
eo2: rename func parameter into _func_
Jérémy Zurcher [Wed, 25 Dec 2013 14:05:44 +0000 (15:05 +0100)]
eo2: add macros to feed op_descs
Jérémy Zurcher [Wed, 25 Dec 2013 14:04:26 +0000 (15:04 +0100)]
eo2: _Eo_Class_Description swallows op_descs
remove OpDescs argument from macros,
eo2_get_op_id() uses binary search
Jérémy Zurcher [Mon, 22 Jul 2013 14:06:29 +0000 (14:06 +0000)]
eo2: clear _obj_ ptr at the end of eo2_do
Jérémy Zurcher [Wed, 25 Dec 2013 14:02:25 +0000 (15:02 +0100)]
eo2: add optional macros eo2_call[v]
Jérémy Zurcher [Thu, 18 Jul 2013 07:10:07 +0000 (07:10 +0000)]
eo2: add comments end clean up
Jérémy Zurcher [Thu, 11 Jul 2013 12:15:39 +0000 (14:15 +0200)]
eo2: use internal unref, break if eo2_start returns NULL
Jérémy Zurcher [Wed, 25 Dec 2013 13:51:52 +0000 (14:51 +0100)]
eo2: eliminate the need of OPID and Eo_Op_Func_Description
at class elaboration, sort the op descriptions using the function pointer.
when calling a function, do a dichotomic search in the
class op descriptions to find the corresponding OP_ID,
then keep it in a static variable.
Cedric Bail [Wed, 25 Dec 2013 13:34:26 +0000 (14:34 +0100)]
eo2: make macro pass C++ compiler.
Jérémy Zurcher [Wed, 10 Jul 2013 07:24:59 +0000 (09:24 +0200)]
eo2: fix obj_data retrieval and speed up
obj_data which is built from func->src not obj->klass.
replace eo2_func_get() and eo2_data_scope_get() calls
with one call to eo2_call_resolve().
Jérémy Zurcher [Tue, 9 Jul 2013 15:43:46 +0000 (17:43 +0200)]
eo2: add macros for functions with no argument
Tom Hacohen [Tue, 9 Jul 2013 14:49:45 +0000 (15:49 +0100)]
eo2: pass the object id and data to function call
Jérémy Zurcher [Tue, 9 Jul 2013 12:21:11 +0000 (14:21 +0200)]
eo2: add eo2_data_scope_get()
use it in function body
Jérémy Zurcher [Tue, 9 Jul 2013 12:11:05 +0000 (14:11 +0200)]
eo2: EO_FUNC -> EO_FUNC_BODY
use macro to build the function body,
the function prototype is a regular one
Jérémy Zurcher [Tue, 9 Jul 2013 11:59:34 +0000 (13:59 +0200)]
eo2: macro eo_o => eo2_o for clarity
Tom Hacohen [Tue, 9 Jul 2013 09:48:30 +0000 (10:48 +0100)]
eo2: fix wrong eo2_do macro as reported by Jeremy.
Tom Hacohen [Mon, 8 Jul 2013 15:31:36 +0000 (16:31 +0100)]
eo2: Eo2 first commit.
Daniel Zaoui [Thu, 3 Apr 2014 13:20:58 +0000 (16:20 +0300)]
Eolian: add support for functions scope.
This patch adds support for protected functions.
In the .eo file, the scope (public by default) has to be added before
the function name e.g:
protected foo ...
To access the protected APIs, #define (CLASS)_PROTECTED is needed e.g:
#define ELM_BUTTON_PROTECTED
Daniel Zaoui [Sun, 30 Mar 2014 13:22:14 +0000 (16:22 +0300)]
Eolian: generation of Eo2.
The generation of Eo2 can be enabled by defining EO flag in
common_funcs.h.
Daniel Kolesa [Wed, 9 Apr 2014 14:48:41 +0000 (15:48 +0100)]
eina: a highly irritating error in eina_file documentation