Commit Graph

58917 Commits

Author SHA1 Message Date
Cedric BAIL 94a9a733a5 edje: simplify part handling as we are now guaranteed that a part as no parent when reaching the del intercept. 2018-05-24 16:02:20 -07:00
Cedric BAIL 0bf7a5ea13 eo: make sure that reporting object refcount during efl_noref, doesn't lead to recursive loop. 2018-05-24 16:02:20 -07:00
Cedric BAIL 5c23ea00b4 eo: add warning in case of a terrible situation happen. 2018-05-24 16:02:20 -07:00
Cedric BAIL b0aa5d806b eo: efl_invalidate should also be triggered for object with no parent before the destructor. 2018-05-24 16:02:20 -07:00
Cedric BAIL f7b08c4537 ecore: properly cleanup variable on shutdown, so that cycling another init doesn't crash. 2018-05-24 16:02:20 -07:00
Cedric Bail a8b70953e4 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.
2018-05-24 16:02:20 -07:00
Cedric Bail 429084e2fb evas: do not override lifecycle by overriding efl_parent_set. 2018-05-24 16:02:20 -07:00
Cedric Bail 4479d035be evas: reindent code properly. 2018-05-24 16:02:19 -07:00
Cedric Bail e1d41eef3a eo: actually enforcing the efl_parent_set code path is necessary to enforce the predictability of the code path. 2018-05-24 16:02:19 -07:00
Cedric Bail 23e2c0bdb8 eo: as efl_del is not an Eo API call anymore, manually protect call with refcount. 2018-05-24 16:02:19 -07:00
Cedric Bail 48b8118123 eo: update refcount before sending efl_noref event to avoid double update during events propagation. 2018-05-24 16:02:19 -07:00
Cedric Bail a16d127997 ecore: because fd_handler do not have the main loop as parent, the main loop can die before them. 2018-05-24 16:02:19 -07:00
Cedric Bail 5c9815676b evas: move the del event to match invalidate and free event to the end of the destructor. 2018-05-24 16:02:19 -07:00
Cedric BAIL b5b9f72f57 elementary: when there is no file listed yet, no need to request them. 2018-05-24 16:02:19 -07:00
Cedric BAIL 842b2ec381 eina: make it possible to return an EINA_VALUE_EMPTY by just requesting a new value of type NULL. 2018-05-24 16:02:19 -07:00
Cedric BAIL 671fc92f08 eina: check the type before looking at anything else to avoid triggering valgrind warning. 2018-05-24 16:02:19 -07:00
Cedric BAIL e4a6aaa4c1 elementary: enforce walk to protect the object existence by using eo refcounting. 2018-05-24 16:02:19 -07:00
Cedric BAIL 048a93e6e3 elementary: reorder operation to only call efl_parent_set when the object still has a chance to exist. 2018-05-24 16:02:19 -07:00
Cedric BAIL ddccd9e306 evas: destructor can not be called recursively, we should rely on Eo refcount. 2018-05-24 16:02:19 -07:00
Cedric Bail d052f001be eo: move destruction of the link with children to be always after invalidate. 2018-05-24 16:02:19 -07:00
Cedric Bail 3a1fe14742 eo: propagate invalidate before destroying the link to the parent. 2018-05-24 16:02:19 -07:00
Cedric Bail 91cd4f7c0c evas: actually we do not even need to NULL it, if we wref it. 2018-05-24 16:02:19 -07:00
Cedric Bail 3347db4bea edje: do not reparent when the object is dead already. 2018-05-24 16:02:19 -07:00
Cedric Bail a3c91d14a9 eo: improve message for debugging life cycle issues. 2018-05-24 16:02:19 -07:00
Cedric Bail f49ccff71d edje: forgot to propagate invalidate upward. 2018-05-24 16:02:19 -07:00
Lauro Moura 02f77eb092 cxx: Fix examples after part changes
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
2018-05-24 16:02:19 -07:00
Lauro Moura 969efc6399 examples: Elm: Add dependency on efl.la due to efl_part
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
2018-05-24 16:02:19 -07:00
Lauro Moura f510d536a4 efl_mono: Fixes after efl_part/del changes.
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
2018-05-24 16:02:19 -07:00
Cedric Bail bff5c37c1b ecore_evas: we shouldn't do anything when we are deleted. 2018-05-24 16:02:19 -07:00
Cedric Bail 741f3e39ed evas: preserve evas_object_del logic to not really destroy an object until it is fully unref first. 2018-05-24 16:02:19 -07:00
Cedric Bail c2e8b492b1 evas: enforce legacy parent to be the canvas. 2018-05-24 16:02:19 -07:00
Cedric Bail f44511d0f9 elementary: refactor by using elm_legacy_add. 2018-05-24 16:02:19 -07:00
Cedric Bail b482107a19 evas: add a way to figure out the evas class that should be the real parent for all legacy object. 2018-05-24 16:02:19 -07:00
Cedric BAIL f29e1db94b elementary: make toolbar 'more_item' properly self destruct. 2018-05-24 16:02:19 -07:00
Cedric BAIL 2ce788063a elementary: no need to recalculate the layout during invalidate. 2018-05-24 16:02:19 -07:00
Cedric BAIL 9e0f9539dd elementary: the pan object of the map object was created with efl_add, adjust accordingly. 2018-05-24 16:02:19 -07:00
Cedric BAIL 0fe3b7962d 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.
2018-05-24 16:02:19 -07:00
Cedric BAIL 0239099d01 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.
2018-05-24 16:02:19 -07:00
Cedric BAIL 30d02a7410 evas: try to protect old legacy lifecycle without overloading Efl.Del. 2018-05-24 16:02:19 -07:00
Cedric BAIL 590304d597 eio: properly handle Eio.Model lifecycle inside Elm.Fileselector.
Differential Revision: https://phab.enlightenment.org/D6107
2018-05-24 16:02:18 -07:00
Cedric BAIL c753fc793b elementary: dayselector use efl_add to create the object, calling efl_del during destructor make no sense.
Differential Revision: https://phab.enlightenment.org/D6106
2018-05-24 16:02:18 -07:00
Cedric BAIL 1991900fd6 elementary: no need to check for part during destruction.
Differential Revision: https://phab.enlightenment.org/D6105
2018-05-24 16:02:18 -07:00
Cedric BAIL 6476896ec5 elementary: no need for resize an object during destruction.
Differential Revision: https://phab.enlightenment.org/D6104
2018-05-24 16:02:18 -07:00
Cedric BAIL 2508c1a3ae elementary: colorselector item are created with efl_add, so they are dead when they reach the destructor.
Differential Revision: https://phab.enlightenment.org/D6103
2018-05-24 16:02:18 -07:00
Cedric BAIL dbbcfa4a59 elementary: small correction in the API of Efl.Access.Object to have proper lifecycle.
This API require more review, I have just fixed API that return type that are
inconsistent over time and fail to allow for proper lifecycle of event, which
lead to crash when those event trigger at unexpected point.

Differential Revision: https://phab.enlightenment.org/D6102
2018-05-24 16:02:18 -07:00
Cedric BAIL fe14abd929 evas: refactor efl_input_event and remove some of the lifecycle hack.
Differential Revision: https://phab.enlightenment.org/D6101
2018-05-24 16:02:18 -07:00
Cedric BAIL c447b61756 eo: actually during invalidating we already have an invalidated object.
Differential Revision: https://phab.enlightenment.org/D6100
2018-05-24 16:02:18 -07:00
Cedric BAIL 4c9a33a388 eo: move EFL internal function ___efl_ref2 also to eo_internal.h
Differential Revision: https://phab.enlightenment.org/D6099
2018-05-24 16:02:18 -07:00
Cedric BAIL 8a513a522e 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
2018-05-24 16:02:18 -07:00
Cedric BAIL c28eb28728 eo: check for allow_parent_unref during efl_unref and silence warning.
Differential Revision: https://phab.enlightenment.org/D6097
2018-05-24 16:02:18 -07:00