summaryrefslogtreecommitdiff
path: root/src/lib/elementary/elm_config.c
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2018-04-02 16:46:55 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2018-04-05 18:52:57 +0900
commitcffb31f4a768ba6112646960f6e197f85f02f2ca (patch)
tree13449679a1e9bb83375da8490a3303dcfcf983c3 /src/lib/elementary/elm_config.c
parent08dc189053f72fff344746bde808b1382f2af693 (diff)
elm config - dont leak config if re-loading it again later on
delete config object and so on before the relaod
Diffstat (limited to 'src/lib/elementary/elm_config.c')
-rw-r--r--src/lib/elementary/elm_config.c13
1 files changed, 13 insertions, 0 deletions
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)
1665static void 1665static void
1666_config_load(void) 1666_config_load(void)
1667{ 1667{
1668 if (_efl_config_obj)
1669 {
1670 efl_del_intercept_set(_efl_config_obj, NULL);
1671 efl_loop_unregister(efl_main_loop_get(), EFL_CONFIG_INTERFACE, _efl_config_obj);
1672 efl_loop_unregister(efl_main_loop_get(), EFL_CONFIG_GLOBAL_CLASS, _efl_config_obj);
1673 ELM_SAFE_FREE(_efl_config_obj, efl_unref);
1674 ELM_SAFE_FREE(_elm_config, _config_free);
1675 _elm_font_overlays_del_free();
1676
1677 _elm_config_profile_derived_shutdown();
1678
1679 ELM_SAFE_FREE(_elm_key_bindings, eina_hash_free);
1680 }
1668 _efl_config_obj = efl_add(EFL_CONFIG_GLOBAL_CLASS, efl_main_loop_get()); 1681 _efl_config_obj = efl_add(EFL_CONFIG_GLOBAL_CLASS, efl_main_loop_get());
1669 efl_loop_register(efl_main_loop_get(), EFL_CONFIG_INTERFACE, _efl_config_obj); 1682 efl_loop_register(efl_main_loop_get(), EFL_CONFIG_INTERFACE, _efl_config_obj);
1670 efl_loop_register(efl_main_loop_get(), EFL_CONFIG_GLOBAL_CLASS, _efl_config_obj); 1683 efl_loop_register(efl_main_loop_get(), EFL_CONFIG_GLOBAL_CLASS, _efl_config_obj);