From 868dc1ba2b2d23e0310ec8a7a861e0aa4157e06b Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Thu, 23 Jun 2016 21:55:58 +0900 Subject: [PATCH] config: Prevent accidental deletion of the config object --- src/lib/elementary/elm_config.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c index d14aee8c3f..204ee34b75 100644 --- a/src/lib/elementary/elm_config.c +++ b/src/lib/elementary/elm_config.c @@ -1679,12 +1679,19 @@ _config_system_load(void) return cfg; } +static void +_efl_config_obj_del(Eo *obj EINA_UNUSED) +{ + ERR("You can not delete the global configuration object!"); +} + static void _config_load(void) { _efl_config_obj = eo_add(EFL_CONFIG_GLOBAL_CLASS, NULL); efl_loop_register(ecore_main_loop_get(), EFL_CONFIG_INTERFACE, _efl_config_obj); efl_loop_register(ecore_main_loop_get(), EFL_CONFIG_GLOBAL_CLASS, _efl_config_obj); + eo_del_intercept_set(_efl_config_obj, _efl_config_obj_del); _elm_config = _config_user_load(); if (_elm_config) { @@ -4243,6 +4250,7 @@ _elm_config_profile_set(const char *profile) void _elm_config_shutdown(void) { + eo_del_intercept_set(_efl_config_obj, NULL); efl_loop_register(ecore_main_loop_get(), EFL_CONFIG_INTERFACE, NULL); efl_loop_register(ecore_main_loop_get(), EFL_CONFIG_GLOBAL_CLASS, NULL); ELM_SAFE_FREE(_efl_config_obj, eo_del);