From cffb31f4a768ba6112646960f6e197f85f02f2ca Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Mon, 2 Apr 2018 16:46:55 +0900 Subject: [PATCH] elm config - dont leak config if re-loading it again later on delete config object and so on before the relaod --- src/lib/elementary/elm_config.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c index 4504b41f50..b2cbf99601 100644 --- a/src/lib/elementary/elm_config.c +++ b/src/lib/elementary/elm_config.c @@ -1665,6 +1665,19 @@ _efl_config_obj_del(Eo *obj EINA_UNUSED) static void _config_load(void) { + if (_efl_config_obj) + { + efl_del_intercept_set(_efl_config_obj, NULL); + efl_loop_unregister(efl_main_loop_get(), EFL_CONFIG_INTERFACE, _efl_config_obj); + efl_loop_unregister(efl_main_loop_get(), EFL_CONFIG_GLOBAL_CLASS, _efl_config_obj); + ELM_SAFE_FREE(_efl_config_obj, efl_unref); + ELM_SAFE_FREE(_elm_config, _config_free); + _elm_font_overlays_del_free(); + + _elm_config_profile_derived_shutdown(); + + ELM_SAFE_FREE(_elm_key_bindings, eina_hash_free); + } _efl_config_obj = efl_add(EFL_CONFIG_GLOBAL_CLASS, efl_main_loop_get()); efl_loop_register(efl_main_loop_get(), EFL_CONFIG_INTERFACE, _efl_config_obj); efl_loop_register(efl_main_loop_get(), EFL_CONFIG_GLOBAL_CLASS, _efl_config_obj);