Tom Hacohen
f481e8dc64
eo2: fixed EO2_VOID_CLASS_FUNC_BODY function.
2014-04-10 04:20:18 +01:00
Tom Hacohen
cbc9a7bd30
eo2: migrated constructors test to eo2.
2014-04-10 04:20:18 +01:00
Tom Hacohen
e5c7d666e0
eo2: migrated the composite test to eo2.
2014-04-10 04:20:18 +01:00
Tom Hacohen
5e92ffb121
eo2: improved error messages on failed resolves.
2014-04-10 04:20:18 +01:00
Tom Hacohen
7c0598c930
eo2: access tests makeup
2014-04-10 04:20:18 +01:00
Tom Hacohen
bd66dd49f8
eo2: changed Eo class names to be consistent.
...
All the class names are now of the format: Lib_Type_Subtype_Extra.
2014-04-10 04:20:18 +01:00
Jérémy Zurcher
eb01d1c3e8
eo2: add EO2_CLASS_CLASS
2014-04-10 04:20:18 +01:00
Jérémy Zurcher
1614b9d529
eo2: base class op_descs must be static
2014-04-10 04:20:18 +01:00
Jérémy Zurcher
47d560b720
eo2: support composites object
...
_eo2_api_desc_get() searches extensions classes
eo2_call_resolve() searches composites objects
2014-04-10 04:20:18 +01:00
Jérémy Zurcher
2e9ae2a571
eo2: optimize eo2_call_resolve and call stack
2014-04-10 04:20:18 +01:00
Jérémy Zurcher
e51e397b89
eo2: fix eo_base_data_get(), eo_composite_attach(), eo_composite_detach()
2014-04-10 04:20:18 +01:00
Jérémy Zurcher
fc448f89af
eo2: clean up and speed up call stack usage
2014-04-10 04:20:18 +01:00
Jérémy Zurcher
4bbd97913d
eo2: eo2_add_internal_start use trash and fix MAGIC
2014-04-10 04:20:18 +01:00
Jérémy Zurcher
782092f7af
eo2: eo2_do() and eo2_do_super() supports objects and classes
2014-04-10 04:20:18 +01:00
Jérémy Zurcher
93f85f095e
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
2014-04-10 04:20:18 +01:00
Jérémy Zurcher
2be91e465a
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.
2014-04-10 04:20:18 +01:00
Jérémy Zurcher
c9ccc700fd
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)>
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
d4aad6bfc0
eo2: formatting
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
f1e6582052
eo2: import cecd1980
, calloc and realloc failure protections
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
796b151c27
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().
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
3a86881941
eo2: eo2_do_start use EO_OBJ_POINTER_ macros not _eo_obj_pointer_get
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
74f7bf3633
eo2: eo2_call_resolve_internal support undef HAVE_EO_ID
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
2af0764eeb
eo2: _eo2_api_desc_get: walks in mro not in klass->parent
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
94adc97efe
eo2: rename eo2 class 'Eo Base'->'Eo2 Base'
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
fe23e26d0e
eo2: add DBG msg in eo2_class_funcs_set
2014-04-10 04:20:17 +01:00
Cedric Bail
8613ebe403
eo2: memset will be faster, still why not using NULL instead of -1 ?
2014-04-10 04:20:17 +01:00
Cedric Bail
0b279b600e
eo2: we can rely on LD_PRELOAD for those hook, so removing them.
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
7477a51432
eo2: add EO2_HOOK_DO_PREPARE
2014-04-10 04:20:17 +01:00
Cedric Bail
4b97591634
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.
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
bbab74320a
eo2: fix eo2 custom constructors
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
ebc90200a6
eo2: sprinkle with 'const'
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
8959832be4
eo2: fixed EO2_CLASS_FUNC_BODY and etc. functions.
2014-04-10 04:20:17 +01:00
Tom Hacohen
2bd03348e3
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.
2014-04-10 04:20:17 +01:00
Tom Hacohen
1db137fa8c
eo2: fixed EO2_CLASS_FUNC_BODY and etc. functions.
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
4f73887b47
eo2: remove EO2_OP_FUNC_VIRTUAL
...
a pure virtual function is an EO2_OP_FUNC
with NULL as private function implementation pointer
2014-04-10 04:20:17 +01:00
Tom Hacohen
feb5a5dc9e
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.
2014-04-10 04:20:17 +01:00
Tom Hacohen
ac2f6d0bf5
eo2: updated the access test to use eo2.
2014-04-10 04:20:17 +01:00
Tom Hacohen
5f45e57b89
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.
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
7be0748b34
eo2: implement class function support
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
28d66a9858
eo2: eo_del_internal use same logic as in eo_add_internal
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
e82c0f6bf7
eo2: fix indent
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
42ad23c5c8
eo2: eo2_add accepts non-defauld constructors
2014-04-10 04:20:17 +01:00
Jérémy Zurcher
2d5baec80c
eo2: call _eo2_class_funcs_set from _eo_class_constructor
2014-04-10 04:20:16 +01:00
Tom Hacohen
8307ed5aa8
eo2: cleaned up EO2_CLASS_DESCRIPTION_OPS and OP_DESC_SIZE (renamed).
2014-04-10 04:20:16 +01:00
Tom Hacohen
56f48ac817
eo2: fixed dbg_info_get function to accept the correct number of params.
2014-04-10 04:20:16 +01:00
Tom Hacohen
3ae5b846f7
eo2: cleaned up eo2_do macros.
...
cleaned up the cleanup attribute usage.
don't use objid more than once (it's a macro).
2014-04-10 04:20:16 +01:00
Jérémy Zurcher
329d752c59
eo2: do not call eo2_do_end() if eo2_do_start() fail
2014-04-10 04:20:16 +01:00
Jérémy Zurcher
b6991985ed
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.
2014-04-10 04:20:16 +01:00
Jérémy Zurcher
adc1ac0c23
eo2: add eo2_call_stack_depth
2014-04-10 04:20:16 +01:00
Jérémy Zurcher
eeff3e898c
eo2: EO2_CALL_STACK_SIZE -> EO2_CALL_STACK_DEPTH
2014-04-10 04:20:16 +01:00