Tom Hacohen
1890fdf27f
eo2: fixed eo2_do call order.
...
This fixes the mixin test and general calling order.
"Next class" can only be known per op. That's why super should be
restricted to only one op.
2014-04-10 04:20:19 +01:00
Tom Hacohen
7c3f7e9b5b
eo2: eo2_do_super should only have one func.
...
This is a limitation that must be respected as eo2_do_super, unlike
eo2_do can end up with having different next class because of mixins.
2014-04-10 04:20:19 +01:00
Tom Hacohen
a62d150c96
eo2: share code between eo2_do and eo2_do_super.
2014-04-10 04:20:19 +01:00
Tom Hacohen
d9ceddf63a
eo2: fixed formatting.
2014-04-10 04:20:19 +01:00
Tom Hacohen
b8ae43b464
eo2: prefix all the eo2_*internal* functions with an underscore.
...
This prevents them from being auto-completed by IDEs which makes
development nicer.
2014-04-10 04:20:19 +01:00
Tom Hacohen
123ebca6d0
eo2: don't create types starting with __, that's reserved.
...
__ is a reserved compiler domain, prefix with _Eo2_ instead.
2014-04-10 04:20:19 +01:00
Tom Hacohen
c20c537528
eo2: use EO2_CLASS_DESCRIPTION_NOOPS everywhere.
2014-04-10 04:20:19 +01:00
Tom Hacohen
ed14382f7c
eo2: fixed a compliation issue in test suite.
2014-04-10 04:20:19 +01:00
Tom Hacohen
d0f71a6e8b
eo2: fix eo2_base_class function signatures.
...
"void func(void)" != "void func()" !
The former is a func that accepts 0 parameters.
The latter is a func that accepts variable number of parameters.
Watch out.
2014-04-10 04:20:19 +01:00
Tom Hacohen
7d79b10bb6
eo2 suite: add an important FIXME.
2014-04-10 04:20:19 +01:00
Tom Hacohen
08b28211b6
eo2: migrated the eo-suite test to eo2.
2014-04-10 04:20:19 +01:00
Tom Hacohen
ff64050a7b
eo2: fixed eo2_class_class.
2014-04-10 04:20:19 +01:00
Tom Hacohen
f38895abed
eo2: detach children when object is deleted.
2014-04-10 04:20:19 +01:00
Tom Hacohen
a588c7d99e
eo2: correctly handle eo2_do(NULL, ...).
2014-04-10 04:20:19 +01:00
Jérémy Zurcher
b08ae598a8
eo2: do not restrict search for api in class extensions to some class types
2014-04-10 04:20:19 +01:00
Tom Hacohen
2593cb86c6
eo2: interface test, removed obsolete Eo_Op.
2014-04-10 04:20:19 +01:00
Tom Hacohen
f4f62e0f9f
eo2: migrated mixin test to eo2.
2014-04-10 04:20:19 +01:00
Tom Hacohen
e4f0e4c410
eo2: constructors test, removed obsolete Eo_Op.
2014-04-10 04:20:19 +01:00
Tom Hacohen
13b30abe56
eo2: cleaned up the function overrides test.
2014-04-10 04:20:19 +01:00
Tom Hacohen
3a524e4201
eo2: fix function overrides test.
2014-04-10 04:20:19 +01:00
Jérémy Zurcher
ca1f245366
eo2: _eo2_api_desc_get can look into interfaces extensions too
2014-04-10 04:20:19 +01:00
Jérémy Zurcher
541cf25723
eo2: eo2_add_internal_end() return NULL if do_error is set
2014-04-10 04:20:19 +01:00
Jérémy Zurcher
9c1856bf82
eo2: support NULL op_descs
2014-04-10 04:20:19 +01:00
Jérémy Zurcher
b8e9b14699
eo2: fix some op descriptions in constructors tests
2014-04-10 04:20:18 +01:00
Jérémy Zurcher
36c5127822
eo2: add EO2_CLASS_DESCRIPTION_NOOPS() macros
2014-04-10 04:20:18 +01:00
Jérémy Zurcher
11595dc40c
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
2014-04-10 04:20:18 +01:00
Jérémy Zurcher
78973fba6c
eo2: fix tests, do not use _CLASS_FUNC_, see previous commit
2014-04-10 04:20:18 +01:00
Jérémy Zurcher
23e2c29298
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
2014-04-10 04:20:18 +01:00
Tom Hacohen
9a9fdb46fe
eo2 test composite: migrated things I forgot to migrate.
2014-04-10 04:20:18 +01:00
Tom Hacohen
b7176a93d3
eo2 base class: fixed regular and class event functions confusion.
2014-04-10 04:20:18 +01:00
Tom Hacohen
18698086b4
eo2: migrated signals test to eo2.
2014-04-10 04:20:18 +01:00
Tom Hacohen
760a74a150
eo2: migrated interface test to eo2.
2014-04-10 04:20:18 +01:00
Tom Hacohen
0ee8b33bf7
eo2: migrated function_overrides test to eo2.
2014-04-10 04:20:18 +01:00
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