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
Wonguk Jeong [Wed, 9 Apr 2014 10:45:30 +0000 (19:45 +0900)]
ecore_evas_extn: update plug image object after disconnection
Summary:
plug image object was not cleaned after server disconnection.
specifically, image data was cleaned (NULL), but it was not updated for real on screen
--> set dirty of plug image object
@fix
Test Plan: elementary_test -> open window socket -> open window plug -> close window socket -> plug should be cleaned up
Reviewers: raster, cedric
Reviewed By: raster
CC: seoz, cedric
Differential Revision: https://phab.enlightenment.org/D703
wonguk.jeong [Wed, 9 Apr 2014 10:21:30 +0000 (19:21 +0900)]
ecore_evas_extn: initialize server handle on server deletion
Summary:
Since plug sends message by using deleted server handle (dangling pointer),
I could see glorious error message as below:
*** ECORE ERROR: Ecore Magic Check Failed!!!
*** IN FUNCTION: ecore_con_server_send()
ERR<842>:ecore lib/ecore/ecore.c:729 _ecore_magic_fail() Input handle pointer is NULL!
ERR<842>:ecore lib/ecore/ecore.c:740 _ecore_magic_fail() *** NAUGHTY PROGRAMMER!!!
*** SPANK SPANK SPANK!!!
*** Now go fix your code. Tut tut tut!
Therefore, I initialized server handle on server deletion
@fix
Test Plan: create socket -> create plug -> destroy socket -> mouse move on plug area
Reviewers: raster, cedric
Reviewed By: raster
CC: seoz, cedric
Differential Revision: https://phab.enlightenment.org/D701
Felipe Magno de Almeida [Wed, 9 Apr 2014 10:12:46 +0000 (19:12 +0900)]
eina-cxx: Modified eina C++ log use syntax
Summary:
Modified syntax for eina C++ log to imitate the macro call as returning a stream. So, instead of:
EINA_CXX_DOM_LOG_CRIT(efl::eina::global_domain, "foo " << 5);
It is now used as:
EINA_CXX_DOM_LOG_CRIT(efl::eina::global_domain) << "foo " << 5;
Which more closely resambles using IOStreams in C++.
@feature
Reviewers: cedric, barbieri, smohanty
Reviewed By: barbieri
CC: cedric
Differential Revision: https://phab.enlightenment.org/D623
Felipe Magno de Almeida [Wed, 9 Apr 2014 10:11:46 +0000 (19:11 +0900)]
eet-cxx: Renamed a few local variables and avoided other warnings
Summary: Renamed a few local variables to avoid excessive warnings with -Wshadow warning. Also made construction of a few objects pass all arguments for explicit initialization to avoid other harmless warning.
Reviewers: cedric, tasn, smohanty, raster
Reviewed By: raster
CC: cedric
Differential Revision: https://phab.enlightenment.org/D698
Chris Michael [Wed, 9 Apr 2014 08:44:16 +0000 (09:44 +0100)]
ecore-evas-wl: Reduce useless compositor redraws during render update
and update input & opaque regions after resizing.
@bugfix: We do not need to call ecore_wl_window_damage & commit here.
The damages are already handled in the evas engine for both shm & egl.
Those damages are sent to the compositor Already from the evas engine,
so we don't need to send the same damages twice. This reduces more
useless compositor redraws as we are not constantly sending damages &
calling commit twice for every frame.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Wed, 9 Apr 2014 08:41:02 +0000 (09:41 +0100)]
ecore-wl: Optimize setting of window input region
@bugfix: Store the input region into the window structure, and don't
re-add a duplicate input region (done by comparison of saved region).
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Wed, 9 Apr 2014 08:38:16 +0000 (09:38 +0100)]
ecore-wl: Store window input region into structure
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Wed, 9 Apr 2014 08:34:18 +0000 (09:34 +0100)]
ecore-wl: Optimize opaque region setting for surface and reduce
unnecessary calls to surface commit.
@bugfix: We don't need to call surface_commit if we are just setting
the opaque (or input) region(s). This reduces some overhead on the
compositor side (and thus reduces useless redraws). Also, optimize
opaque_region_set to not Reset to the same region; we do this by
storing the opaque region into the window structure, and on calls to
opaque_region_set we can compare those values and not re-apply the
same opaque region.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Yossi Kantor [Thu, 3 Apr 2014 10:58:34 +0000 (13:58 +0300)]
Eolian: Legacy generator generates const return value for legacy header if needed
Yossi Kantor [Wed, 2 Apr 2014 13:12:23 +0000 (16:12 +0300)]
Eolian: Legacy generator - no semicolon after EINA_WARN_UNUSED_RESULT
Stefan Schmidt [Tue, 8 Apr 2014 14:22:59 +0000 (16:22 +0200)]
rg_etc: Fix local shadow problems
Make it clear which local variable we really want to use by changing
the names. All of these seem to be fine but this can really bite us
so have better clarity here.