From: Junghyun Yeon Date: Fri, 16 Dec 2016 08:29:51 +0000 (+0900) Subject: Fix when remove app event callback from list X-Git-Tag: submit/tizen_3.0/20161216.082724^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F36%2F105336%2F1;p=platform%2Fcore%2Fapi%2Fapp-manager.git Fix when remove app event callback from list - Consider when first callback has to be removed Change-Id: I7beaa8871005203539256566e4aeccb801292ede Signed-off-by: Junghyun Yeon --- diff --git a/src/app_manager_event.c b/src/app_manager_event.c index fcdea81..a5dc931 100644 --- a/src/app_manager_event.c +++ b/src/app_manager_event.c @@ -25,20 +25,21 @@ #define LOG_TAG "CAPI_APPFW_APP_MANAGER" -static int __remove_app_manager_event_info(app_manager_event_info *head, int req_id) +static int __remove_app_manager_event_info(app_manager_event_info **head, int req_id) { app_manager_event_info *prev; app_manager_event_info *current; - current = prev = head; + current = prev = *head; if (current == NULL) return APP_MANAGER_ERROR_INVALID_PARAMETER; while (current) { if (current->req_id == req_id) { + if (prev == current) + *head = current->next; prev->next = current->next; free(current); - current = NULL; return APP_MANAGER_ERROR_NONE; } prev = current; @@ -166,7 +167,7 @@ int app_event_handler(uid_t target_uid, int req_id, app_evt->event_cb(pkg_type, appid, event_type, APP_MANAGER_EVENT_STATE_FAILED, app_evt, app_evt->user_data); - ret = __remove_app_manager_event_info(app_evt->head, req_id); + ret = __remove_app_manager_event_info(&(app_evt->head), req_id); if (ret != APP_MANAGER_ERROR_NONE) { LOGE("failed to remove app event info"); return APP_MANAGER_ERROR_REQUEST_FAILED;