Cedric BAIL [Tue, 22 May 2018 23:15:02 +0000 (16:15 -0700)]
eo: we are actually testing internal function too here.
Cedric BAIL [Tue, 22 May 2018 23:14:20 +0000 (16:14 -0700)]
eo: add infrastructure to test critical Eina Error.
Cedric BAIL [Tue, 22 May 2018 23:13:53 +0000 (16:13 -0700)]
eo: improve tests suite debugging by always displaying the error message before abort.
Cedric BAIL [Tue, 22 May 2018 21:10:48 +0000 (14:10 -0700)]
eo: move wref set to NULL to append after last event.
Making wref disapear before the last event require additional work to use
them during the FREE event. As I think we should introduce a wref that
disapear after the invalidate state, it makes sense to move that to a later
stage. Especially because their is no specific event related to them
being set to NULL.
Cedric Bail [Tue, 22 May 2018 05:35:19 +0000 (22:35 -0700)]
evas: improve test to actually test something meaningful.
Cedric BAIL [Mon, 21 May 2018 23:59:51 +0000 (16:59 -0700)]
elementary: fix configuration destruction by actually calling the proper way of destruction.
Cedric Bail [Thu, 17 May 2018 21:48:26 +0000 (14:48 -0700)]
evas: actually we expect gradient to live as long as the part that is using them.
Cedric Bail [Thu, 17 May 2018 21:08:05 +0000 (14:08 -0700)]
ecore_con: allow for NULL to do nothing.
Cedric Bail [Thu, 17 May 2018 21:07:46 +0000 (14:07 -0700)]
elementary: the config subsystem expect a stringshare.
Cedric Bail [Thu, 17 May 2018 20:44:29 +0000 (13:44 -0700)]
evas: multiple call to evas_object_del are allowed even after the first one succeeded.
Cedric Bail [Thu, 17 May 2018 19:06:44 +0000 (12:06 -0700)]
eo: allow efl_part during object invalidate.
Cedric BAIL [Tue, 15 May 2018 22:37:11 +0000 (15:37 -0700)]
eo: remove parent_sink as this hack should not be necessary anymore.
Cedric BAIL [Tue, 15 May 2018 22:35:48 +0000 (15:35 -0700)]
eo: try to make efl_add and efl_add_ref refcounting sane in all case.
Cedric BAIL [Tue, 15 May 2018 22:34:58 +0000 (15:34 -0700)]
ecore_file: on shutdown properly set to NULL to avoid confusion when cycling init/shutdown.
Cedric BAIL [Tue, 15 May 2018 22:32:14 +0000 (15:32 -0700)]
ecore: allow for NULL file handler request.
Cedric BAIL [Tue, 15 May 2018 22:29:15 +0000 (15:29 -0700)]
elementary: destroy timer as they could tick during shutdown.
Cedric BAIL [Tue, 15 May 2018 21:57:15 +0000 (14:57 -0700)]
elementary: properly destroy block events object during destruction.
Cedric BAIL [Tue, 15 May 2018 21:53:13 +0000 (14:53 -0700)]
evas: do not crash if constructor fail and invalidate is run on a partial object.
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