cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5f5af596e04aef455f0e6158ace2bc9b8cfbabe5
commit 5f5af596e04aef455f0e6158ace2bc9b8cfbabe5 Author: Cedric BAIL <ced...@osg.samsung.com> Date: Tue May 15 10:52:12 2018 -0700 elementary: cleanup genlist destructor to order content destruction correctly. --- src/lib/elementary/elm_genlist.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c index 5820d3cd47..6545a86446 100644 --- a/src/lib/elementary/elm_genlist.c +++ b/src/lib/elementary/elm_genlist.c @@ -5699,26 +5699,28 @@ _elm_genlist_efl_canvas_group_group_del(Eo *obj, Elm_Genlist_Data *sd) int i; elm_genlist_clear(obj); + _item_cache_zero(sd); + + efl_canvas_group_del(efl_super(obj, MY_CLASS)); + for (i = 0; i < 2; i++) ELM_SAFE_FREE(sd->stack[i], evas_object_del); evas_event_callback_del_full(evas_object_evas_get(obj), EVAS_CALLBACK_CANVAS_VIEWPORT_RESIZE, _evas_viewport_resize_cb, sd); + + ELM_SAFE_FREE(sd->calc_job, ecore_job_del); + ELM_SAFE_FREE(sd->update_job, ecore_job_del); ELM_SAFE_FREE(sd->pan_obj, evas_object_del); + ELM_SAFE_FREE(sd->queue_idle_enterer, ecore_idle_enterer_del); + ELM_SAFE_FREE(sd->must_recalc_idler, ecore_idler_del); + ELM_SAFE_FREE(sd->multi_timer, ecore_timer_del); + ELM_SAFE_FREE(sd->size_caches, eina_hash_free); - _item_cache_zero(sd); - ecore_job_del(sd->calc_job); - ecore_job_del(sd->update_job); - ecore_idle_enterer_del(sd->queue_idle_enterer); - ecore_idler_del(sd->must_recalc_idler); - ecore_timer_del(sd->multi_timer); - eina_stringshare_del(sd->decorate_it_type); - eina_hash_free(sd->size_caches); + eina_stringshare_replace(&sd->decorate_it_type, NULL); _elm_genlist_tree_effect_stop(sd); - - efl_canvas_group_del(efl_super(obj, MY_CLASS)); } EOLIAN static void --