X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fpkgmgrinfo_archiveinfo.c;h=d0206615ad10ea7e086aea51464f0a1dd38ef965;hb=5e622b967bbcffd42a99ad5f56a0a2a83a20303b;hp=33c5cd34b0249a555631a33066fb45fe5f73f81b;hpb=0b13b9bc2b0576b26c8fa70f26c27e109d5b4656;p=platform%2Fcore%2Fappfw%2Fpkgmgr-info.git diff --git a/src/pkgmgrinfo_archiveinfo.c b/src/pkgmgrinfo_archiveinfo.c index 33c5cd3..d020661 100644 --- a/src/pkgmgrinfo_archiveinfo.c +++ b/src/pkgmgrinfo_archiveinfo.c @@ -80,6 +80,8 @@ API int pkgmgrinfo_archiveinfo_destroy_archiveinfo( } 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; @@ -226,3 +228,30 @@ API int pkgmgrinfo_archiveinfo_get_icon(pkgmgrinfo_archiveinfo_h handle, 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; +}