jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=868dc1ba2b2d23e0310ec8a7a861e0aa4157e06b

commit 868dc1ba2b2d23e0310ec8a7a861e0aa4157e06b
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Thu Jun 23 21:55:58 2016 +0900

    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 d14aee8..204ee34 100644
--- a/src/lib/elementary/elm_config.c
+++ b/src/lib/elementary/elm_config.c
@@ -1680,11 +1680,18 @@ _config_system_load(void)
 }
 
 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);

-- 


Reply via email to