if (ret != PMINFO_R_OK) {
_LOGE("Failed to create filter");
g_hash_table_destroy(list);
+ free(locale);
return PMINFO_R_ERROR;
}
}
- if (__check_disable_filter_exist(tmp_filter) == false)
- pkgmgrinfo_pkginfo_filter_add_bool(tmp_filter,
+ if (__check_disable_filter_exist(tmp_filter) == false) {
+ ret = pkgmgrinfo_pkginfo_filter_add_bool(tmp_filter,
PMINFO_PKGINFO_PROP_PACKAGE_DISABLE, false);
+ if (ret != PMINFO_R_OK) {
+ _LOGE("Failed to add filter");
+ g_hash_table_destroy(list);
+ free(locale);
+ if (filter == NULL)
+ pkgmgrinfo_pkginfo_filter_destroy(tmp_filter);
+ return PMINFO_R_ERROR;
+ }
+ }
ret = _pkginfo_get_packages(uid, locale, tmp_filter,
flag | PMINFO_PKGINFO_GET_BASICINFO, list);
if (locale == NULL)
return PMINFO_R_ERROR;
- list = g_hash_table_new(g_str_hash, g_str_equal);
+ list = g_hash_table_new_full(g_str_hash, g_str_equal, NULL,
+ __free_packages);
if (list == NULL) {
free(locale);
return PMINFO_R_ERROR;
info->locale = locale;
/* just free list only */
+ g_hash_table_steal(list, (gconstpointer)pkgid);
g_hash_table_destroy(list);
*handle = info;
return PMINFO_R_ERROR;
}
- list = g_hash_table_new(g_str_hash, g_str_equal);
+ list = g_hash_table_new_full(g_str_hash, g_str_equal, NULL,
+ __free_packages);
if (list == NULL) {
pkgmgrinfo_pkginfo_filter_destroy(filter);
free(locale);
info->locale = locale;
/* just free list only */
+ g_hash_table_steal(list, (gconstpointer)pkgid);
g_hash_table_destroy(list);
*handle = info;