summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMyungki Lee <mk5004.lee@samsung.com>2016-01-27 12:18:02 +0900
committerMyungki Lee <mk5004.lee@samsung.com>2016-01-27 12:18:02 +0900
commiteac36e68b61823475591aee0478e42bd714eac9f (patch)
tree410a951acb74856b43d9f3fb3d766813bf96ffe6
parentb93d2be853862870124a1288fe7b34462e17a5b2 (diff)
downloadapp-manager-eac36e68b61823475591aee0478e42bd714eac9f.tar.gz
app-manager-eac36e68b61823475591aee0478e42bd714eac9f.tar.bz2
app-manager-eac36e68b61823475591aee0478e42bd714eac9f.zip
Do not use create function when app_info clone
Change-Id: I9ba9a475a79cf763ee26203b261cdfd6c473b302 Signed-off-by: Myungki Lee <mk5004.lee@samsung.com>
-rw-r--r--src/app_info.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/app_info.c b/src/app_info.c
index 41f492d..cd86ba3 100644
--- a/src/app_info.c
+++ b/src/app_info.c
@@ -516,15 +516,28 @@ API int app_info_is_preload(app_info_h app_info, bool *preload)
API int app_info_clone(app_info_h *clone, app_info_h app_info)
{
- int retval;
+ app_info_h info;
if (clone == NULL || app_info == NULL)
return app_manager_error(APP_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
- retval = app_info_create(app_info->app_id, clone);
+ info = calloc(1, sizeof(struct app_info_s));
+ if (info == NULL)
+ return app_manager_error(APP_MANAGER_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
+
+ info->app_id = strdup(app_info->app_id);
+ if (info->app_id == NULL) {
+ free(info);
+ return app_manager_error(APP_MANAGER_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
+ }
+
+ if (pkgmgrinfo_appinfo_clone_appinfo(app_info->pkg_app_info, &(info->pkg_app_info)) < 0) {
+ free(info->app_id);
+ free(info);
+ return app_manager_error(APP_MANAGER_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
+ }
- if (retval != APP_MANAGER_ERROR_NONE)
- return app_manager_error(retval, __FUNCTION__, NULL);
+ *clone = info;
return APP_MANAGER_ERROR_NONE;
}