From dc6c6ae2937d59a66d5b3718747d77f909f97401 Mon Sep 17 00:00:00 2001 From: Junghyun Yeon Date: Thu, 6 Oct 2016 14:39:39 +0900 Subject: [PATCH] Change behavior of app_info_create correctly - Changed to getting appinfo based on appid first - If it fails, treat appid as pkgid and try to get appinfo of mainapp of pkg Change-Id: I3785bd17f529dc11e3a39ae46b721be6aa44b1f1 Signed-off-by: Junghyun Yeon --- src/app_info.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/app_info.c b/src/app_info.c index 919e96d..7c89093 100644 --- a/src/app_info.c +++ b/src/app_info.c @@ -226,25 +226,29 @@ API int app_info_create(const char *app_id, app_info_h *app_info) if (info == NULL) return app_manager_error(APP_MANAGER_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL); - retval = pkgmgrinfo_pkginfo_get_usr_pkginfo(app_id, getuid(), &pkginfo); - if (retval < 0) { - if (pkgmgrinfo_appinfo_get_usr_appinfo(app_id, getuid(), &appinfo)) { - free(info); - return app_manager_error(APP_MANAGER_ERROR_NO_SUCH_APP, __FUNCTION__, NULL); - } - + retval = pkgmgrinfo_appinfo_get_usr_appinfo(app_id, getuid(), &appinfo); + if (!retval) { info->app_id = strdup(app_id); info->pkg_app_info = appinfo; *app_info = info; return APP_MANAGER_ERROR_NONE; } + retval = pkgmgrinfo_pkginfo_get_usr_pkginfo(app_id, getuid(), &pkginfo); + if (retval < 0) { + free(info); + return app_manager_error(APP_MANAGER_ERROR_NO_SUCH_APP, __FUNCTION__, NULL); + } + retval = pkgmgrinfo_pkginfo_get_mainappid(pkginfo, &main_appid); - if (retval < 0) + if (retval < 0) { + free(info); + pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo); app_manager_error(APP_MANAGER_ERROR_NO_SUCH_APP, __FUNCTION__, NULL); - + } if (pkgmgrinfo_appinfo_get_usr_appinfo(main_appid, getuid(), &appinfo)) { free(info); + pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo); return app_manager_error(APP_MANAGER_ERROR_NO_SUCH_APP, __FUNCTION__, NULL); } -- 2.34.1