diff options
author | Hwankyu Jhun <h.jhun@samsung.com> | 2018-04-24 17:38:55 +0900 |
---|---|---|
committer | Hwankyu Jhun <h.jhun@samsung.com> | 2018-04-24 17:48:52 +0900 |
commit | 45d58230e546450063a537e0cd176e49a6ce7bf1 (patch) | |
tree | d23f3d2ada6c0edfc8da01d2baee37d9f770771e | |
parent | efa8e860084ff5e02b96864f2ab2c5d4bf27a62c (diff) | |
download | aul-1-45d58230e546450063a537e0cd176e49a6ce7bf1.tar.gz aul-1-45d58230e546450063a537e0cd176e49a6ce7bf1.tar.bz2 aul-1-45d58230e546450063a537e0cd176e49a6ce7bf1.zip |
Add an exception handling
- Verify current language before getting cached information
Change-Id: I0a41e9f2a8e468b7310ab7034a88442ac005c7fe
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
-rwxr-xr-x | src/aul_rsc_mgr.c | 38 |
1 files changed, 33 insertions, 5 deletions
diff --git a/src/aul_rsc_mgr.c b/src/aul_rsc_mgr.c index a43675cd..b09c1f00 100755 --- a/src/aul_rsc_mgr.c +++ b/src/aul_rsc_mgr.c @@ -720,6 +720,12 @@ static int __close(resource_manager_t *handle) static void __vconf_cb(keynode_t *key, void *data) { + char *val; + + val = vconf_keynode_get_str(key); + if (val && cur_language && !strcmp(val, cur_language)) + return; + __invalidate_cache(); } @@ -1051,6 +1057,24 @@ API int aul_resource_manager_get_path_list(GHashTable **list) return AUL_RESOURCE_ERROR_NONE; } +static bool __verify_current_language(void) +{ + char *lang; + + lang = vconf_get_str(VCONFKEY_LANGSET); + if (!lang) + return false; + + if (cur_language && !strcmp(lang, cur_language)) { + free(lang); + return true; + } + + free(lang); + + return false; +} + API int aul_resource_manager_get(aul_resource_e type, const char *id, char **path) { int retval = AUL_RESOURCE_ERROR_NONE; @@ -1081,11 +1105,15 @@ API int aul_resource_manager_get(aul_resource_e type, const char *id, char **pat return retval; } - /* To get fname from cache */ - cached_path = __get_cache(type, id); - if (cached_path != NULL) { - *path = strdup(cached_path); - return AUL_RESOURCE_ERROR_NONE; + if (__verify_current_language()) { + /* To get fname from cache */ + cached_path = __get_cache(type, id); + if (cached_path != NULL) { + *path = strdup(cached_path); + return AUL_RESOURCE_ERROR_NONE; + } + } else { + __invalidate_cache(); } } |