util: explicite unset cb 13/59213/2
authorLukasz Stanislawski <l.stanislaws@samsung.com>
Thu, 11 Feb 2016 11:06:01 +0000 (12:06 +0100)
committerLukasz Stanislawski <l.stanislaws@samsung.com>
Thu, 11 Feb 2016 12:32:02 +0000 (04:32 -0800)
System settings and runtime info API seems to throw an error
if key-callback pair is trying to be replaced with the same
key-callback pair. To solve this explicite unset current key
callback before setting new one.

Additionally improve some error logs.

Change-Id: I6116366a833f26634d2886f95506e0048955df70
Signed-off-by: Lukasz Stanislawski <l.stanislaws@samsung.com>
src/util.c

index 6f7c875..a58ab21 100644 (file)
@@ -703,8 +703,10 @@ int util_system_settings_set_changed_cb(system_settings_key_e key, system_settin
                return -1;
        }
 
+       system_settings_unset_changed_cb(key);
        int err = system_settings_set_changed_cb(key, _system_settings_cb, NULL);
        if (err != SYSTEM_SETTINGS_ERROR_NONE) {
+               ERR("system_settings_set_changed_cb failed: %s", get_error_message(err));
                free(handler);
                return -1;
        }
@@ -758,8 +760,10 @@ int util_runtime_info_set_changed_cb(runtime_info_key_e key, runtime_info_change
                return -1;
        }
 
+       runtime_info_unset_changed_cb(key);
        int err = runtime_info_set_changed_cb(key, _runtime_info_cb, NULL);
        if (err != RUNTIME_INFO_ERROR_NONE) {
+               ERR("runtime_info_set_changed_cb failed: %s", get_error_message(err));
                free(handler);
                return -1;
        }