Cedric BAIL [Tue, 15 May 2018 20:27:23 +0000 (13:27 -0700)]
eo: improve error reporting to display object pointer (without accessing it).
Cedric BAIL [Tue, 15 May 2018 17:52:12 +0000 (10:52 -0700)]
elementary: cleanup genlist destructor to order content destruction correctly.
Cedric BAIL [Mon, 14 May 2018 23:15:48 +0000 (16:15 -0700)]
evas: make evas_object_free work in case of lost reference to Eo object.
This is clearly a workaround to a bad situation, but there is no case
that I can find that solely lead to object being NULL nor is there any
code that should do that, but still it does in some case...
Cedric BAIL [Mon, 14 May 2018 23:15:05 +0000 (16:15 -0700)]
evas: detect incoherency in object content and report problem.
Cedric BAIL [Mon, 14 May 2018 23:14:30 +0000 (16:14 -0700)]
evas: handle Evas_Object constructor failure case better.
Cedric BAIL [Mon, 14 May 2018 21:54:45 +0000 (14:54 -0700)]
edje: simplify part handling as we are now guaranteed that a part as no parent when reaching the del intercept.
Cedric BAIL [Mon, 14 May 2018 21:47:39 +0000 (14:47 -0700)]
eo: make sure that reporting object refcount during efl_noref, doesn't lead to recursive loop.
Cedric BAIL [Mon, 14 May 2018 21:47:07 +0000 (14:47 -0700)]
eo: add warning in case of a terrible situation happen.
Cedric BAIL [Mon, 14 May 2018 17:11:58 +0000 (10:11 -0700)]
eo: efl_invalidate should also be triggered for object with no parent before the destructor.
Cedric BAIL [Mon, 14 May 2018 17:08:32 +0000 (10:08 -0700)]
ecore: properly cleanup variable on shutdown, so that cycling another init doesn't crash.
Cedric Bail [Sun, 13 May 2018 05:20:04 +0000 (22:20 -0700)]
evas: improve evas child destruction order.
Technically I do not thing it is a correct behavior to force destroy
reference that evas do not hold, but evas_object are deaply tied to
the canvas they are build on and even after invalidate it is hard
to not have function call that would lead to crash. Making the pointer
incorrect thanks to eo indirection seems safer here.
Cedric Bail [Sun, 13 May 2018 05:16:42 +0000 (22:16 -0700)]
evas: do not override lifecycle by overriding efl_parent_set.
Cedric Bail [Sun, 13 May 2018 05:16:09 +0000 (22:16 -0700)]
evas: reindent code properly.
Cedric Bail [Sun, 13 May 2018 05:14:53 +0000 (22:14 -0700)]
eo: actually enforcing the efl_parent_set code path is necessary to enforce the predictability of the code path.
Cedric Bail [Sun, 13 May 2018 05:11:33 +0000 (22:11 -0700)]
eo: as efl_del is not an Eo API call anymore, manually protect call with refcount.
Cedric Bail [Sun, 13 May 2018 05:09:37 +0000 (22:09 -0700)]
eo: update refcount before sending efl_noref event to avoid double update during events propagation.
Cedric Bail [Fri, 11 May 2018 16:28:26 +0000 (09:28 -0700)]
ecore: because fd_handler do not have the main loop as parent, the main loop can die before them.
Cedric Bail [Thu, 10 May 2018 03:01:17 +0000 (20:01 -0700)]
evas: move the del event to match invalidate and free event to the end of the destructor.
Cedric BAIL [Thu, 10 May 2018 23:45:15 +0000 (16:45 -0700)]
elementary: when there is no file listed yet, no need to request them.
Cedric BAIL [Thu, 10 May 2018 23:42:08 +0000 (16:42 -0700)]
eina: make it possible to return an EINA_VALUE_EMPTY by just requesting a new value of type NULL.
Cedric BAIL [Thu, 10 May 2018 23:41:20 +0000 (16:41 -0700)]
eina: check the type before looking at anything else to avoid triggering valgrind warning.
Cedric BAIL [Thu, 10 May 2018 22:37:32 +0000 (15:37 -0700)]
elementary: enforce walk to protect the object existence by using eo refcounting.
Cedric BAIL [Thu, 10 May 2018 22:36:59 +0000 (15:36 -0700)]
elementary: reorder operation to only call efl_parent_set when the object still has a chance to exist.
Cedric BAIL [Thu, 10 May 2018 21:28:04 +0000 (14:28 -0700)]
evas: destructor can not be called recursively, we should rely on Eo refcount.
Cedric Bail [Thu, 10 May 2018 03:07:01 +0000 (20:07 -0700)]
eo: move destruction of the link with children to be always after invalidate.
Cedric Bail [Thu, 10 May 2018 03:03:06 +0000 (20:03 -0700)]
eo: propagate invalidate before destroying the link to the parent.
Cedric Bail [Thu, 10 May 2018 02:58:15 +0000 (19:58 -0700)]
evas: actually we do not even need to NULL it, if we wref it.
Cedric Bail [Thu, 10 May 2018 00:24:01 +0000 (17:24 -0700)]
edje: do not reparent when the object is dead already.
Cedric Bail [Thu, 10 May 2018 00:23:20 +0000 (17:23 -0700)]
eo: improve message for debugging life cycle issues.
Cedric Bail [Wed, 9 May 2018 19:28:26 +0000 (12:28 -0700)]
edje: forgot to propagate invalidate upward.
Lauro Moura [Mon, 7 May 2018 20:35:07 +0000 (17:35 -0300)]
cxx: Fix examples after part changes
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Lauro Moura [Mon, 7 May 2018 20:34:14 +0000 (17:34 -0300)]
examples: Elm: Add dependency on efl.la due to efl_part
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Lauro Moura [Mon, 7 May 2018 20:26:39 +0000 (17:26 -0300)]
efl_mono: Fixes after efl_part/del changes.
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Cedric Bail [Wed, 9 May 2018 01:46:53 +0000 (18:46 -0700)]
ecore_evas: we shouldn't do anything when we are deleted.
Cedric Bail [Wed, 9 May 2018 01:08:57 +0000 (18:08 -0700)]
evas: preserve evas_object_del logic to not really destroy an object until it is fully unref first.
Cedric Bail [Wed, 9 May 2018 00:37:30 +0000 (17:37 -0700)]
evas: enforce legacy parent to be the canvas.
Cedric Bail [Wed, 9 May 2018 00:17:27 +0000 (17:17 -0700)]
elementary: refactor by using elm_legacy_add.
Cedric Bail [Tue, 8 May 2018 23:56:51 +0000 (16:56 -0700)]
evas: add a way to figure out the evas class that should be the real parent for all legacy object.
Cedric BAIL [Mon, 7 May 2018 23:48:10 +0000 (16:48 -0700)]
elementary: make toolbar 'more_item' properly self destruct.
Cedric BAIL [Mon, 7 May 2018 23:12:10 +0000 (16:12 -0700)]
elementary: no need to recalculate the layout during invalidate.
Cedric BAIL [Mon, 7 May 2018 23:04:04 +0000 (16:04 -0700)]
elementary: the pan object of the map object was created with efl_add, adjust accordingly.
Cedric BAIL [Mon, 7 May 2018 22:16:29 +0000 (15:16 -0700)]
elementary: due to lifecycle difference between legacy object and unified object, we need to track their lifecycle more explicitely.
It is my understanding that some items view are created with efl_add directly
and manipulate VIEW directly with Eo new API. This clash with the inconsistent
behavior that evas_object_del expect. To work around this, we track object life
by explictely relying on efl_wref_add while holding the pointer to the object.
Cedric BAIL [Mon, 7 May 2018 17:50:30 +0000 (10:50 -0700)]
eo: efl_del should not be something anyone can override this can break so many things.
Allowing override of efl_del allow for messing with object life cycle which can create
problem for binding where an object was expected to be invalidated, but isn't really.
Cedric BAIL [Mon, 7 May 2018 17:45:15 +0000 (10:45 -0700)]
evas: try to protect old legacy lifecycle without overloading Efl.Del.
Cedric BAIL [Fri, 4 May 2018 23:15:18 +0000 (16:15 -0700)]
eio: properly handle Eio.Model lifecycle inside Elm.Fileselector.
Differential Revision: https://phab.enlightenment.org/D6107
Cedric BAIL [Fri, 4 May 2018 21:52:25 +0000 (14:52 -0700)]
elementary: dayselector use efl_add to create the object, calling efl_del during destructor make no sense.
Differential Revision: https://phab.enlightenment.org/D6106
Cedric BAIL [Fri, 4 May 2018 21:46:51 +0000 (14:46 -0700)]
elementary: no need to check for part during destruction.
Differential Revision: https://phab.enlightenment.org/D6105
Cedric BAIL [Fri, 4 May 2018 21:40:06 +0000 (14:40 -0700)]
elementary: no need for resize an object during destruction.
Differential Revision: https://phab.enlightenment.org/D6104
Cedric BAIL [Fri, 4 May 2018 21:36:14 +0000 (14:36 -0700)]
elementary: colorselector item are created with efl_add, so they are dead when they reach the destructor.
Differential Revision: https://phab.enlightenment.org/D6103
Cedric BAIL [Fri, 4 May 2018 20:00:53 +0000 (13:00 -0700)]
evas: refactor efl_input_event and remove some of the lifecycle hack.
Differential Revision: https://phab.enlightenment.org/D6101
Cedric BAIL [Fri, 4 May 2018 20:00:11 +0000 (13:00 -0700)]
eo: actually during invalidating we already have an invalidated object.
Differential Revision: https://phab.enlightenment.org/D6100
Cedric BAIL [Thu, 3 May 2018 23:43:48 +0000 (16:43 -0700)]
eo: move EFL internal function ___efl_ref2 also to eo_internal.h
Differential Revision: https://phab.enlightenment.org/D6099
Cedric BAIL [Thu, 3 May 2018 23:34:17 +0000 (16:34 -0700)]
efl: major rewrite of efl_part.
The interface efl_part_get should not be directly called from C, but the efl_part
wrapper should. It rely on efl_noref to properly destroy the object. Binding can
control the lifecycle of the reference the way they want by either calling the
wrapper or efl_part_get directly. It also means that the ugly ___efl_auto_unref_set
doesn't need to be exposed outside of EFL anymore.
Differential Revision: https://phab.enlightenment.org/D6098
Cedric BAIL [Thu, 3 May 2018 23:32:11 +0000 (16:32 -0700)]
eo: check for allow_parent_unref during efl_unref and silence warning.
Differential Revision: https://phab.enlightenment.org/D6097
Cedric BAIL [Thu, 3 May 2018 18:37:08 +0000 (11:37 -0700)]
eo: make sure efl_noref is always called at the proper time.
Differential Revision: https://phab.enlightenment.org/D6096
Cedric BAIL [Thu, 3 May 2018 18:36:28 +0000 (11:36 -0700)]
eo: add an automatic fallback at the moment when efl_unref instead of efl_del is called.
Differential Revision: https://phab.enlightenment.org/D6095
Cedric Bail [Wed, 2 May 2018 23:24:44 +0000 (16:24 -0700)]
elementary: object created with efl_add should be destroyed with efl_del.
Differential Revision: https://phab.enlightenment.org/D6094
Cedric Bail [Wed, 2 May 2018 23:24:03 +0000 (16:24 -0700)]
elementary: object allocated with efl_add should be destroyed with efl_del.
Differential Revision: https://phab.enlightenment.org/D6093
Cedric Bail [Wed, 2 May 2018 21:20:00 +0000 (14:20 -0700)]
eldbus: fix unref of eldbus to not throw warning all over the place.
Especially to note, that when giving a message to send, the caller
do not own it anymore and should not unref it.
Differential Revision: https://phab.enlightenment.org/D6092
Cedric Bail [Wed, 2 May 2018 20:44:01 +0000 (13:44 -0700)]
eldbus: manage death of children during invalidate.
Differential Revision: https://phab.enlightenment.org/D6091
Cedric Bail [Wed, 2 May 2018 20:42:52 +0000 (13:42 -0700)]
eldbus: object created with efl_add should be destroyed with efl_del.
Differential Revision: https://phab.enlightenment.org/D6090
Cedric Bail [Wed, 2 May 2018 20:19:35 +0000 (13:19 -0700)]
ecore: first invalidate the loop and its children, then destroy all the object capability.
Differential Revision: https://phab.enlightenment.org/D6089
Cedric BAIL [Tue, 1 May 2018 23:58:29 +0000 (16:58 -0700)]
eo: optimize efl object reuse by limiting the amount of call to pointer translation.
Differential Revision: https://phab.enlightenment.org/D6088
Cedric BAIL [Tue, 1 May 2018 23:37:59 +0000 (16:37 -0700)]
edje: properly handle lifecycle of edje global object.x
Differential Revision: https://phab.enlightenment.org/D6087
Cedric BAIL [Tue, 1 May 2018 23:27:46 +0000 (16:27 -0700)]
eo: prevent parenting to an already invalidated parent.
Differential Revision: https://phab.enlightenment.org/D6086
Cedric BAIL [Tue, 1 May 2018 23:24:19 +0000 (16:24 -0700)]
eo: only call efl_parent_set(NULL) at the end of invalidate if the object is not invalidating.
Add also a comment to justify why we do force parent to NULL during invalidate.
Differential Revision: https://phab.enlightenment.org/D6085
Cedric BAIL [Tue, 1 May 2018 23:23:05 +0000 (16:23 -0700)]
ecore_con: correct lifecycle of object used by Efl.Net.Dialer.Ssl.
Differential Revision: https://phab.enlightenment.org/D6084
Cedric BAIL [Tue, 1 May 2018 23:21:13 +0000 (16:21 -0700)]
ecore_con: trigger teardown during invalidate.
Delaying teardown might result in code expecting parent to still be valid,
especially call to efl_provider_find won't work anymore.
Differential Revision: https://phab.enlightenment.org/D6083
Cedric BAIL [Tue, 1 May 2018 23:20:26 +0000 (16:20 -0700)]
ecore_con: it is best to call the super destructor and not touch the object anymore after.
Differential Revision: https://phab.enlightenment.org/D6082
Cedric BAIL [Tue, 1 May 2018 23:19:36 +0000 (16:19 -0700)]
ecore_con: correct a typo wrongly calling super destructor instead of super invalidate.
Differential Revision: https://phab.enlightenment.org/D6081
Cedric BAIL [Tue, 1 May 2018 23:18:53 +0000 (16:18 -0700)]
ecore: correct lifecycle of object used by Ecore_Con legacy.
Differential Revision: https://phab.enlightenment.org/D6080
Cedric BAIL [Tue, 1 May 2018 21:24:05 +0000 (14:24 -0700)]
eo: improve error message by pointing to the class that is creating trouble.
Differential Revision: https://phab.enlightenment.org/D6079
Cedric BAIL [Tue, 1 May 2018 21:23:04 +0000 (14:23 -0700)]
eo: preventing infinite loop by safely iterating over children during destructor.
Differential Revision: https://phab.enlightenment.org/D6078
Cedric BAIL [Tue, 1 May 2018 21:21:49 +0000 (14:21 -0700)]
ecore: properly handle shutdown of Efl.Loop children by using invalidate.
Differential Revision: https://phab.enlightenment.org/D6077
Cedric BAIL [Tue, 1 May 2018 21:09:28 +0000 (14:09 -0700)]
ecore: disable signal during shutdown.
Differential Revision: https://phab.enlightenment.org/D6076
Cedric BAIL [Tue, 1 May 2018 20:32:12 +0000 (13:32 -0700)]
eo: invalidate at the end of efl_invalidate only and prevent infinite recursion with an invalidating phase.
Differential Revision: https://phab.enlightenment.org/D6075
Cedric BAIL [Tue, 1 May 2018 20:30:44 +0000 (13:30 -0700)]
ecore: force close during invalidate of Efl.Io.Buffered_Stream.
Differential Revision: https://phab.enlightenment.org/D6074
Cedric BAIL [Tue, 17 Apr 2018 16:54:30 +0000 (09:54 -0700)]
elementary: use invalidate instead of overriding del for widget items.
Differential Revision: https://phab.enlightenment.org/D6073
Cedric BAIL [Tue, 17 Apr 2018 16:48:51 +0000 (09:48 -0700)]
elementary: rely on inheritance instead of faking efl_del behavior.
Differential Revision: https://phab.enlightenment.org/D6072
Cedric BAIL [Mon, 16 Apr 2018 23:56:23 +0000 (16:56 -0700)]
elementary: make del_pre not return a bool and force rely on Eo ref counting.
Differential Revision: https://phab.enlightenment.org/D6071
Cedric BAIL [Mon, 16 Apr 2018 23:44:01 +0000 (16:44 -0700)]
elementary: prevent death of list item using Eo ref counting.
Differential Revision: https://phab.enlightenment.org/D6070
Cedric BAIL [Mon, 16 Apr 2018 23:43:24 +0000 (16:43 -0700)]
elementary: remove now useless walking in item.
Differential Revision: https://phab.enlightenment.org/D6069
Cedric BAIL [Mon, 16 Apr 2018 23:40:39 +0000 (16:40 -0700)]
elementary: use Eo ref counting to prevent death of genlist items.
Differential Revision: https://phab.enlightenment.org/D6068
Cedric BAIL [Mon, 16 Apr 2018 23:40:19 +0000 (16:40 -0700)]
elementary: use Eo ref counting to prevent death of gengrid items.
Differential Revision: https://phab.enlightenment.org/D6067
Mike Blumenkrantz [Wed, 11 Apr 2018 21:26:09 +0000 (17:26 -0400)]
elm_list: prevent list item operations during item deletion
ref T6880
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Differential Revision: https://phab.enlightenment.org/D6066
Mike Blumenkrantz [Wed, 11 Apr 2018 21:25:39 +0000 (17:25 -0400)]
elm_list: fix crash in item deletion
this is still broken
ref T6881
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Differential Revision: https://phab.enlightenment.org/D6065
Cedric BAIL [Wed, 11 Apr 2018 17:38:21 +0000 (10:38 -0700)]
Revert "efl_add_ref - fis to use efl_add properly with a parent."
This reverts commit
2fb5cc3ad09f6aaf82b5d1131ac5ed22ed848bd4.
Most of this change where wrong as they didn't affect the destruction
of the object. efl_add_ref allow for manual handling of the lifecycle
of the object and make sure it is still alive during destructor. efl_add
will not allow you to access an object after invalidate also efl.parent.get
will always return NULL once the object is invalidated.
Differential Revision: https://phab.enlightenment.org/D6062
Cedric Bail [Wed, 4 Apr 2018 22:37:11 +0000 (15:37 -0700)]
eo: to avoid mistake in timing, efl_invalidate should always be triggered before any destructor code.
Differential Revision: https://phab.enlightenment.org/D6061
Marcel Hollerbach [Thu, 24 May 2018 21:56:30 +0000 (14:56 -0700)]
elm_ctxpopup: prevent a giant load of errors
Summary:
i) There have been 2 sorts of errors, first the items have been deleted
after the list was deleted, thus the list items have already been
destructed. which lead to the error as the popup items destroyed the list
items on destruction as well.
ii) sd->box was attached to the ctxpopup when getting into group_del the
box has already been destroyed by the cleanup logic.
Subscribers: cedric, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6166
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
WooHyun Jung [Thu, 24 May 2018 06:30:29 +0000 (15:30 +0900)]
elm_main: call _elm_config_shutdown() after loop_iterate()
In _elm_config_shutdown(), _elm_config is freed.
So, if some ecore events call efl_ui_xxx API which refers _elm_config,
there can be crashes.
@fix
Cedric BAIL [Thu, 24 May 2018 02:36:56 +0000 (19:36 -0700)]
eina: path get actually allocate memory and can't be pure.
Marcel Hollerbach [Thu, 24 May 2018 04:15:56 +0000 (21:15 -0700)]
efl_ui_focus_composition: track the deletion state of child objects
Reviewers: cedric, zmike
Reviewed By: cedric
Subscribers: #committers, cedric, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6186
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Lauro Moura [Sat, 19 May 2018 02:43:09 +0000 (23:43 -0300)]
efl_mono: Generate support for accessors in .eos
Summary: Depends on D6190
Reviewers: felipealmeida, vitor.sousa
Reviewed By: vitor.sousa
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6191
Lauro Moura [Fri, 18 May 2018 03:50:37 +0000 (00:50 -0300)]
efl_mono: Initial support for Accessors.
Summary:
Plain conversion to IEnumerable, which is the base of LINQ
Depends on D6189
Reviewers: felipealmeida, vitor.sousa
Reviewed By: vitor.sousa
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6190
Lauro Moura [Thu, 17 May 2018 22:46:57 +0000 (19:46 -0300)]
efl_mono: Reject the promise when it's disposed.
Summary:
As futures are tied to a given promises and are usually handled in
a 'attach and forget' scheme, we can't cancel them as it would cancel
the whole chain.
Reviewers: felipealmeida, vitor.sousa
Reviewed By: vitor.sousa
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6189
Mike Blumenkrantz [Wed, 23 May 2018 21:35:18 +0000 (17:35 -0400)]
ecore-evas-buffer: defer resize callback until pre-render
Summary:
this mimics other engines, all of which have the same mechanics due
to display server interactions. it also avoids unnecessary recalcs before
pre-render if the canvas size was changing repeatedly
fix T6924
ref D6019
Reviewers: cedric, JackDanielZ
Reviewed By: JackDanielZ
Subscribers: #committers, JackDanielZ
Tags: #efl
Maniphest Tasks: T6924
Differential Revision: https://phab.enlightenment.org/D6145
Lauro Moura [Wed, 23 May 2018 13:07:05 +0000 (10:07 -0300)]
efl_mono: Fix events after Event_Description rename.
Xavi Artigas [Wed, 23 May 2018 10:39:57 +0000 (12:39 +0200)]
efl: rename Efl.Ui.Zoom.Mode -> Efl.Ui.Zoom_Mode
Xavi Artigas [Wed, 23 May 2018 10:39:08 +0000 (12:39 +0200)]
efl: rename Efl.Ui.Widget.Orientation_Mode -> Efl.Ui.Widget_Orientation_Mode
Xavi Artigas [Wed, 23 May 2018 10:37:35 +0000 (12:37 +0200)]
efl: rename Efl.Ui.Text.Change_Info -> Efl.Ui.Text_Change_Info