return PMINFO_R_ERROR;
}
+ free(pkg_type);
*handle = info;
return PMINFO_R_OK;
}
free(info->icon_buf);
+ g_list_free_full(info->privilege_list, free);
+ g_list_free_full(info->dependency_list, free);
free(info);
return PMINFO_R_OK;
package_manager_pkg_detail_info_t *info =
(package_manager_pkg_detail_info_t *)handle;
- if (info == NULL || strlen(info->pkg_type) == 0 || type == NULL ) {
+ if (info == NULL || strlen(info->pkg_type) == 0 || type == NULL) {
_LOGE("invalid parameter");
return PMINFO_R_EINVAL;
}
return PMINFO_R_OK;
}
+
+API int pkgmgrinfo_archiveinfo_foreach_dependency(
+ pkgmgrinfo_archiveinfo_h handle,
+ pkgmgrinfo_pkg_dependency_list_cb callback, void *user_data)
+{
+ GList *tmp;
+ pkg_dependency_info_t *dependency_info;
+ package_manager_pkg_detail_info_t *info =
+ (package_manager_pkg_detail_info_t *)handle;
+
+ if (info == NULL || callback == NULL) {
+ _LOGE("invalid parameter");
+ return PMINFO_R_EINVAL;
+ }
+
+ for (tmp = info->dependency_list; tmp != NULL;
+ tmp = g_list_next(tmp)) {
+ dependency_info = (pkg_dependency_info_t *)tmp->data;
+ if (callback(info->pkgid,
+ dependency_info->pkgid,
+ dependency_info->type,
+ dependency_info->required_version,
+ user_data) != 0)
+ return PMINFO_R_ERROR;
+ }
+ return PMINFO_R_OK;
+}