Jérémy Zurcher
adc1ac0c23
eo2: add eo2_call_stack_depth
2014-04-10 04:20:16 +01:00
Jérémy Zurcher
1aa3b1536f
eo2: add virtual func support
2014-04-10 04:20:16 +01:00
Tom Hacohen
ec1e507465
eo2: explicitly put void as the arguments in a zero argument function (macro).
2014-04-10 04:20:16 +01:00
Jérémy Zurcher
1d9d0cee9c
eo2: EO2_OP_FUNC_OVERRIDE copy doc from overriden func
2014-04-10 04:20:16 +01:00
Jérémy Zurcher
2edd305507
eo2: set eo2_constructor and eo2_destructor chaining
2014-04-10 04:20:16 +01:00
Jérémy Zurcher
c17a30dfb9
eo2: add cur_klass in call Stack and eo2_do_super
...
in eo2_do_start(), reuse previous stack fetched pointers when possible
2014-04-10 04:20:16 +01:00
Jérémy Zurcher
68fb3d4c03
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.
2014-04-10 04:20:16 +01:00
Jérémy Zurcher
58cb65b895
eo2: eo2_base_class, one step further
2014-04-10 04:20:16 +01:00
Jérémy Zurcher
8b6b9532c5
eo2: Eo.h swallows eo2_base_class.h
2014-04-10 04:20:16 +01:00
Jérémy Zurcher
6a16edc888
eo2: call stack Proof Of Concept
...
no grow/shrink or thread local storage
2014-04-10 04:20:16 +01:00
Jérémy Zurcher
2490a1bef2
eo2: better op_descs integration
...
struct _Eo_Class_Description swallows
Eo2_Op_Description *descs2;
2014-04-10 04:20:15 +01:00
Jérémy Zurcher
8ef9e1c00d
eo2: use EO2 instead of EO in macro names
2014-04-10 04:20:15 +01:00
Jérémy Zurcher
6bb29b378b
eo2: add EO_FUNC_BODY_VOID and EO_FUNC_BODY_VOIDV macros
2014-04-10 04:20:15 +01:00
Jérémy Zurcher
48c2c1dfba
eo2: rename func parameter into _func_
2014-04-10 04:20:15 +01:00
Jérémy Zurcher
3295c8faaa
eo2: add macros to feed op_descs
2014-04-10 04:20:15 +01:00
Jérémy Zurcher
f05f51dd60
eo2: _Eo_Class_Description swallows op_descs
...
remove OpDescs argument from macros,
eo2_get_op_id() uses binary search
2014-04-10 04:20:15 +01:00
Jérémy Zurcher
41aff7524d
eo2: clear _obj_ ptr at the end of eo2_do
2014-04-10 04:20:15 +01:00
Jérémy Zurcher
731f8e1dea
eo2: add optional macros eo2_call[v]
2014-04-10 04:20:15 +01:00
Jérémy Zurcher
bc6019c154
eo2: add comments end clean up
2014-04-10 04:20:15 +01:00
Jérémy Zurcher
23ae1fc453
eo2: use internal unref, break if eo2_start returns NULL
2014-04-10 04:20:15 +01:00
Jérémy Zurcher
473609e1d3
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.
2014-04-10 04:20:15 +01:00
Cedric Bail
d0153fabc1
eo2: make macro pass C++ compiler.
2014-04-10 04:20:15 +01:00
Jérémy Zurcher
ef873b7b29
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().
2014-04-10 04:20:15 +01:00
Jérémy Zurcher
73f1d2a09e
eo2: add macros for functions with no argument
2014-04-10 04:20:15 +01:00
Tom Hacohen
9e042c0686
eo2: pass the object id and data to function call
2014-04-10 04:20:15 +01:00
Jérémy Zurcher
71341334a9
eo2: add eo2_data_scope_get()
...
use it in function body
2014-04-10 04:20:15 +01:00
Jérémy Zurcher
bfa48634cf
eo2: EO_FUNC -> EO_FUNC_BODY
...
use macro to build the function body,
the function prototype is a regular one
2014-04-10 04:20:15 +01:00
Jérémy Zurcher
787cffd3f9
eo2: macro eo_o => eo2_o for clarity
2014-04-10 04:20:15 +01:00
Tom Hacohen
2e3ad3be10
eo2: fix wrong eo2_do macro as reported by Jeremy.
2014-04-10 04:20:15 +01:00
Tom Hacohen
35856fdd13
eo2: Eo2 first commit.
2014-04-10 04:20:15 +01:00
Jeff Grimshaw
99a17f85c0
efl/eo: Fix Doxygen markup to prevent a warning
...
Summary:
The closing @} for the main Eo group is inside the #ifdef
EFL_BETA_API_SUPPORT block, so it gets removed by the preprocessor
unless the project is configured with EFL_BETA_API_SUPPORT. Moved the
@} outside the #ifdef so it will always be there and Doxygen won't
complain.
Test Plan: make doc 2> doxyerr.log
Reviewers: raster
Reviewed By: raster
CC: cedric
Differential Revision: https://phab.enlightenment.org/D609
2014-03-07 17:01:22 +09:00
Jérémy Zurcher
ef09ef7489
eo: replace composite_objects Eina_List with an array of Eo_Object*
...
as we don't support multiple composites of the same class,
and know at class elaboration how many composites we should have,
we can create the composites array and pack it at the end of the object.
2014-03-05 23:57:39 +01:00
Yossi Kantor
1287177ac2
Eolian: New features/bugs fixes
...
1) Include files now have include guards
2) --gh option generates legacy header with --legacy flag and eo header
without --legacy flag
3) EOLIAN keyword is introduced to mark functions used by generated
file.
4) * for comments when comment text is empty
2014-03-03 14:09:57 +02:00
Jérémy Zurcher
c7922f92bc
eo: revert 13502a1
and 7821df1
...
I'm running out of time, will look at it later
2014-02-27 15:02:45 +01:00
Jérémy Zurcher
7821df17dc
eo: replace composite_objects Eina_List with an array of Eo_Object*
...
as we don't support multiple composites of the same class,
and know at class elaboration how many composites we should have,
we can create the composites array and pack it at the end of the object.
2014-02-26 16:25:00 +01:00
Jérémy Zurcher
e199230615
eo: eo_composite_attach check composite class, disallow duplicates
...
eo_composite_attach fail if the class of the composite is not
listed in the parent class extensions, or if there is already a
composite of the same class. The later because calls are
forwarded to the first responding composite, see _eo_op_internal().
2014-02-26 16:25:00 +01:00
Tom Hacohen
d6ac2464bb
Eo: Make eo_manual_free() return a success flag.
...
eo_manual_free() can fail in some cases, and it is useful for users of
this API to know about it in order to decide what to do.
2013-11-26 12:10:53 +00:00
Tom Hacohen
087f945690
Eo: remove ; after while (0) in Eo.h.
...
The whole point of having "do {} while (0);" is to force people to add a
; after the call to the macro. Therefore there should be no semicolon.
2013-11-06 14:38:29 +00:00
Yakov Goldberg
ed8301b8bf
eo: fix doxygen description, which is needed for parser
2013-10-14 18:12:28 +03:00
Jérémy Zurcher
59a73bdcad
eo: enable doc generation
2013-10-13 00:00:13 +02:00
Jérémy Zurcher
1648b67c5b
eo: add EO_CLASS_CLASS
...
it's an empty class without operations,
used as a return value for eo_class_get() when the caller is a class
2013-10-13 00:00:13 +02:00
Cedric Bail
435caae51a
eo: use Eina_Spinlock instead of Eina_Lock.
...
This is an ABI/API break for Eo, you will need to rebuild everything that use Eo.
2013-10-11 11:08:17 +09:00
Tom Hacohen
e6886e05b1
Eo: get rid of eo_class_do(_super) which we don't need anymore.
...
We now completely use eo_do(_super), so those are not needed.
2013-09-27 17:01:51 +01:00
Tom Hacohen
832fc5b5ce
Manually revert "eo: replace Eo_Class with Eo"
...
This reverts commit ee1b0833ed
I did it manually because the code changed too much.
We actually want this type, it makes things more clear and easier to
understand.
2013-09-27 16:40:32 +01:00
Tom Hacohen
828928601e
Eo: Added an Eo_Class type just for compat. Should be removed.
2013-09-27 14:01:47 +01:00
Tom Hacohen
2a82ff95e4
Eo: unify the class func and normal func prototypes.
...
Conflicts:
src/lib/eo/eo.c
2013-09-27 14:01:47 +01:00
Jérémy Zurcher
f4c1bff0f3
eo: eo_do_super_internal() supports objects and classes
...
eo_class_do_super() macro calls eo_do_super()
eo_class_do_super_internal() and _eo_class_op_internal() are removed
Conflicts:
src/lib/eo/eo.c
2013-09-27 14:01:46 +01:00
Jérémy Zurcher
ef62885c93
eo: eo_vdo_internal() supports objects and classes
...
Conflicts:
src/lib/eo/Eo.h
src/lib/eo/eo.c
2013-09-27 14:01:46 +01:00
Jérémy Zurcher
12bfc76483
eo: eo_do_internal() supports objects and classes
...
eo_class_do() macro calls eo_do()
eo_class_do_internal() is removed
op_type argument is remove from eo_do, eo_vdo_internal
Conflicts:
src/lib/eo/eo.c
2013-09-27 14:01:46 +01:00
Jérémy Zurcher
ee1b0833ed
eo: replace Eo_Class with Eo
2013-09-27 14:01:46 +01:00