Improve duplicated code 98/277898/2
authorInkyun Kil <inkyun.kil@samsung.com>
Fri, 15 Jul 2022 01:13:16 +0000 (10:13 +0900)
committerInkyun Kil <inkyun.kil@samsung.com>
Mon, 18 Jul 2022 04:35:07 +0000 (13:35 +0900)
- Reduce duplicated codes
- Remove unnecessary memory allocation

Change-Id: I3ae0ebd37733693e445467f9c246ee001d24a4a0
Signed-off-by: Inkyun Kil <inkyun.kil@samsung.com>
src/alarm.c

index b98da5166f83ffb5ddf441f4f9d8879e599451f5..7c24dd59588057645ecbe003361e48d5f98f0dfb 100755 (executable)
@@ -106,6 +106,37 @@ static int convert_error_code_to_alarm(const char *function, alarm_error_t alarm
 }
 /* LCOV_EXCL_STOP */
 
+static int __set_alarm_info(alarm_entry_t *alarm_info, struct tm *date,
+               alarm_repeat_mode_t repeat_mode, int repeat_period, int type)
+{
+       alarm_date_t internal_time;
+       int result = ALARM_ERROR_NONE;
+
+       internal_time.year = date->tm_year + 1900;
+       internal_time.month = date->tm_mon + 1;
+       internal_time.day = date->tm_mday;
+
+       internal_time.hour = date->tm_hour;
+       internal_time.min = date->tm_min;
+       internal_time.sec = date->tm_sec;
+
+       result = alarmmgr_set_time(alarm_info, internal_time);
+       if (result < 0)
+               return result;
+
+       if (repeat_period > 0)
+               result = alarmmgr_set_repeat_mode(alarm_info, repeat_mode, repeat_period);
+
+       if (result < 0)
+               return result;
+
+       result = alarmmgr_set_type(alarm_info, type);
+       if (result < 0)
+               return result;
+
+       return result;
+}
+
 int alarm_get_scheduled_date(int alarm_id, struct tm *date)
 {
        alarm_error_t result;
@@ -128,7 +159,7 @@ int alarm_get_scheduled_date(int alarm_id, struct tm *date)
 int alarm_get_scheduled_period(int alarm_id, int *period)
 {
        alarm_error_t result;
-       alarm_entry_t *entry = NULL;
+       alarm_entry_t entry = {0,};
        alarm_repeat_mode_t mode;
        int value;
 
@@ -137,25 +168,13 @@ int alarm_get_scheduled_period(int alarm_id, int *period)
                return ALARM_ERROR_INVALID_PARAMETER;
        }
 
-       entry = alarmmgr_create_alarm();
-
-       result = alarmmgr_get_info(alarm_id, entry);
-       if (result != ALARMMGR_RESULT_SUCCESS) {
-               if (entry != NULL)
-                       alarmmgr_free_alarm(entry);
-
+       result = alarmmgr_get_info(alarm_id, &entry);
+       if (result != ALARMMGR_RESULT_SUCCESS)
                return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       result = alarmmgr_get_repeat_mode(entry, &mode, &value);
-       if (result != ALARMMGR_RESULT_SUCCESS) {
-               if (entry != NULL)
-                       alarmmgr_free_alarm(entry);
 
+       result = alarmmgr_get_repeat_mode(&entry, &mode, &value);
+       if (result != ALARMMGR_RESULT_SUCCESS)
                return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       alarmmgr_free_alarm(entry);
 
        (*period) = value;
 
@@ -167,12 +186,8 @@ int alarm_schedule_after_delay(app_control_h app_control, int delay, int period,
        bundle *bundle_data;
        int result = 0;
 
-       if (app_control == NULL) {
-               LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
-               return ALARM_ERROR_INVALID_PARAMETER;
-       }
-
-       if (app_control_to_bundle(app_control, &bundle_data) != APP_CONTROL_ERROR_NONE) {
+       if (app_control == NULL ||
+                       app_control_to_bundle(app_control, &bundle_data) != APP_CONTROL_ERROR_NONE) {
                LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
                return ALARM_ERROR_INVALID_PARAMETER;
        }
@@ -196,66 +211,36 @@ int alarm_schedule_noti_after_delay(notification_h noti, int delay, int period,
        return  convert_error_code_to_alarm(__FUNCTION__, result);
 }
 
-int alarm_schedule_at_date(app_control_h app_control, struct tm *date, int period_in_second, int *alarm_id)
+static int __add_alarm_appsvc_with_localtime(app_control_h app_control,
+               struct tm *date, alarm_repeat_mode_t repeat_mode, int repeat_value,
+               int alarm_type, int *alarm_id)
 {
-       dlog_print(DLOG_WARN, LOG_TAG, "DEPRECATION WARNING: alarm_schedule_at_date() is deprecated and will be removed from next release. Use alarm_schedule_once_at_date() instead.");
-       alarm_date_t internal_time;
-       alarm_entry_t *alarm_info;
+       alarm_entry_t alarm_info = {0,};
        bundle *bundle_data;
        int result;
 
-       if (app_control == NULL || date == NULL) {
-               LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
-               return ALARM_ERROR_INVALID_PARAMETER;
-       }
-
-       if (app_control_to_bundle(app_control, &bundle_data) != APP_CONTROL_ERROR_NONE) {
+       if (app_control == NULL || date == NULL ||
+                       app_control_to_bundle(app_control, &bundle_data) != APP_CONTROL_ERROR_NONE) {
                LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
                return ALARM_ERROR_INVALID_PARAMETER;
        }
 
-       alarm_info = alarmmgr_create_alarm();
-
-       internal_time.year = date->tm_year + 1900;
-       internal_time.month = date->tm_mon + 1;
-       internal_time.day = date->tm_mday;
-
-       internal_time.hour = date->tm_hour;
-       internal_time.min = date->tm_min;
-       internal_time.sec = date->tm_sec;
-
-       result = alarmmgr_set_time(alarm_info, internal_time);
-
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
+       result = __set_alarm_info(&alarm_info, date, repeat_mode, repeat_value, alarm_type);
+       if (result < 0)
                return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
 
+       result = alarmmgr_add_alarm_appsvc_with_localtime(&alarm_info, bundle_data, alarm_id);
+       if (result < 0)
+                       return convert_error_code_to_alarm(__FUNCTION__, result);
 
-       if (period_in_second > 0)
-               result = alarmmgr_set_repeat_mode(alarm_info, ALARM_REPEAT_MODE_REPEAT, period_in_second);
-       else
-               result = alarmmgr_set_repeat_mode(alarm_info, ALARM_REPEAT_MODE_ONCE, period_in_second);
-
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       result = alarmmgr_set_type(alarm_info, ALARM_TYPE_DEFAULT);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
+       return ALARM_ERROR_NONE;
+}
 
-       result = alarmmgr_add_alarm_appsvc_with_localtime(alarm_info, bundle_data, alarm_id);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
+int alarm_schedule_at_date(app_control_h app_control, struct tm *date, int period_in_second, int *alarm_id)
+{
+       dlog_print(DLOG_WARN, LOG_TAG, "DEPRECATION WARNING: alarm_schedule_at_date() is deprecated and will be removed from next release. Use alarm_schedule_once_at_date() instead.");
 
-       alarmmgr_free_alarm(alarm_info);
-       return ALARM_ERROR_NONE;
+       return __add_alarm_appsvc_with_localtime(app_control, date, ALARM_REPEAT_MODE_REPEAT, period_in_second, ALARM_TYPE_DEFAULT, alarm_id);
 }
 
 int alarm_schedule_once_after_delay(app_control_h app_control, int delay, int *alarm_id)
@@ -263,12 +248,8 @@ int alarm_schedule_once_after_delay(app_control_h app_control, int delay, int *a
        bundle *bundle_data;
        int result = 0;
 
-       if (app_control == NULL) {
-               LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
-               return ALARM_ERROR_INVALID_PARAMETER;
-       }
-
-       if (app_control_to_bundle(app_control, &bundle_data) != APP_CONTROL_ERROR_NONE) {
+       if (app_control == NULL ||
+                       app_control_to_bundle(app_control, &bundle_data) != APP_CONTROL_ERROR_NONE) {
                LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
                return ALARM_ERROR_INVALID_PARAMETER;
        }
@@ -294,70 +275,13 @@ int alarm_schedule_noti_once_after_delay(notification_h noti, int delay, int *al
 
 int alarm_schedule_once_at_date(app_control_h app_control, struct tm *date, int *alarm_id)
 {
-       alarm_date_t internal_time;
-       alarm_entry_t *alarm_info;
-       bundle *bundle_data;
-       int result;
-
-       if (app_control == NULL || date == NULL) {
-               LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
-               return ALARM_ERROR_INVALID_PARAMETER;
-       }
-
-       if (app_control_to_bundle(app_control, &bundle_data) != APP_CONTROL_ERROR_NONE) {
-               LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
-               return ALARM_ERROR_INVALID_PARAMETER;
-       }
-
-       alarm_info = alarmmgr_create_alarm();
-       if (alarm_info == NULL) {
-               /* LCOV_EXCL_START */
-               LOGE("OUT_OF_MEMORY(0x%08x)", ALARM_ERROR_OUT_OF_MEMORY);
-               return ALARM_ERROR_OUT_OF_MEMORY;
-               /* LCOV_EXCL_STOP */
-       }
-
-       internal_time.year = date->tm_year + 1900;
-       internal_time.month = date->tm_mon + 1;
-       internal_time.day = date->tm_mday;
-
-       internal_time.hour = date->tm_hour;
-       internal_time.min = date->tm_min;
-       internal_time.sec = date->tm_sec;
-
-       result = alarmmgr_set_time(alarm_info, internal_time);
-
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       result = alarmmgr_set_repeat_mode(alarm_info, ALARM_REPEAT_MODE_ONCE, 0);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       result = alarmmgr_set_type(alarm_info, ALARM_TYPE_DEFAULT);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       result = alarmmgr_add_alarm_appsvc_with_localtime(alarm_info, bundle_data, alarm_id);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       alarmmgr_free_alarm(alarm_info);
-       return ALARM_ERROR_NONE;
+       return __add_alarm_appsvc_with_localtime(app_control, date, ALARM_REPEAT_MODE_ONCE, 0, ALARM_TYPE_DEFAULT, alarm_id);
 }
 
-int alarm_schedule_noti_once_at_date(notification_h noti, struct tm *date, int *alarm_id)
+static int __alarm_noti_with_local_time(alarm_repeat_mode_t mode, int value,
+               notification_h noti, struct tm *date, int *alarm_id)
 {
-       alarm_date_t internal_time;
-       alarm_entry_t *alarm_info;
+       alarm_entry_t alarm_info = {0,};
        int result;
 
        if (noti == NULL || date == NULL) {
@@ -365,50 +289,22 @@ int alarm_schedule_noti_once_at_date(notification_h noti, struct tm *date, int *
                return ALARM_ERROR_INVALID_PARAMETER;
        }
 
-       alarm_info = alarmmgr_create_alarm();
-       if (alarm_info == NULL) {
-               /* LCOV_EXCL_START */
-               LOGE("OUT_OF_MEMORY(0x%08x)", ALARM_ERROR_OUT_OF_MEMORY);
-               return ALARM_ERROR_OUT_OF_MEMORY;
-               /* LCOV_EXCL_STOP */
-       }
-
-       internal_time.year = date->tm_year + 1900;
-       internal_time.month = date->tm_mon + 1;
-       internal_time.day = date->tm_mday;
-
-       internal_time.hour = date->tm_hour;
-       internal_time.min = date->tm_min;
-       internal_time.sec = date->tm_sec;
-
-       result = alarmmgr_set_time(alarm_info, internal_time);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       result = alarmmgr_set_repeat_mode(alarm_info, ALARM_REPEAT_MODE_ONCE, 0);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       result = alarmmgr_set_type(alarm_info, ALARM_TYPE_DEFAULT);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
+       result = __set_alarm_info(&alarm_info, date, mode, value, ALARM_TYPE_DEFAULT);
+       if (result < 0)
+                       return convert_error_code_to_alarm(__FUNCTION__, result);
 
-       result = alarmmgr_add_alarm_noti_with_localtime(alarm_info, noti, alarm_id);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
+       result = alarmmgr_add_alarm_noti_with_localtime(&alarm_info, noti, alarm_id);
+       if (result < 0)
+                       return convert_error_code_to_alarm(__FUNCTION__, result);
 
-       alarmmgr_free_alarm(alarm_info);
        return ALARM_ERROR_NONE;
 }
 
+int alarm_schedule_noti_once_at_date(notification_h noti, struct tm *date, int *alarm_id)
+{
+       return __alarm_noti_with_local_time(ALARM_REPEAT_MODE_ONCE, 0, noti, date, alarm_id);
+}
+
 int alarm_cancel(int alarm_id)
 {
        int result;
@@ -465,108 +361,18 @@ int alarm_get_current_time(struct tm *date)
 
 int alarm_schedule_with_recurrence_week_flag(app_control_h app_control, struct tm *date, int week_flag, int *alarm_id)
 {
-       alarm_date_t internal_time;
-       alarm_entry_t *alarm_info;
-       bundle *bundle_data;
-       int result;
-
-       if (app_control == NULL || date == NULL) {
-               LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
-               return ALARM_ERROR_INVALID_PARAMETER;
-       }
-
-       if (app_control_to_bundle(app_control, &bundle_data) != APP_CONTROL_ERROR_NONE) {
-               LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
-               return ALARM_ERROR_INVALID_PARAMETER;
-       }
-
-       alarm_info = alarmmgr_create_alarm();
-
-       internal_time.year = date->tm_year + 1900;
-       internal_time.month = date->tm_mon + 1;
-       internal_time.day = date->tm_mday;
-
-       internal_time.hour = date->tm_hour;
-       internal_time.min = date->tm_min;
-       internal_time.sec = date->tm_sec;
-
-       result = alarmmgr_set_time(alarm_info, internal_time);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       if (week_flag > 0) {
-               result = alarmmgr_set_repeat_mode(alarm_info, ALARM_REPEAT_MODE_WEEKLY, week_flag);
-               if (result < 0) {
-                       alarmmgr_free_alarm(alarm_info);
-                       return convert_error_code_to_alarm(__FUNCTION__, result);
-               }
-       }
-
-       result = alarmmgr_set_type(alarm_info, ALARM_TYPE_DEFAULT);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       result = alarmmgr_add_alarm_appsvc_with_localtime(alarm_info, bundle_data, alarm_id);
-       alarmmgr_free_alarm(alarm_info);
-
-       return convert_error_code_to_alarm(__FUNCTION__, result);
+       return __add_alarm_appsvc_with_localtime(app_control, date, ALARM_REPEAT_MODE_WEEKLY, week_flag, ALARM_TYPE_DEFAULT, alarm_id);
 }
 
 int alarm_schedule_noti_with_recurrence_week_flag(notification_h noti, struct tm *date, int week_flag, int *alarm_id)
 {
-       alarm_date_t internal_time;
-       alarm_entry_t *alarm_info;
-       int result;
-
-       if (noti == NULL || date == NULL) {
-               LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
-               return ALARM_ERROR_INVALID_PARAMETER;
-       }
-
-       alarm_info = alarmmgr_create_alarm();
-
-       internal_time.year = date->tm_year + 1900;
-       internal_time.month = date->tm_mon + 1;
-       internal_time.day = date->tm_mday;
-
-       internal_time.hour = date->tm_hour;
-       internal_time.min = date->tm_min;
-       internal_time.sec = date->tm_sec;
-
-       result = alarmmgr_set_time(alarm_info, internal_time);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       if (week_flag > 0)
-               result = alarmmgr_set_repeat_mode(alarm_info, ALARM_REPEAT_MODE_WEEKLY, week_flag);
-
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       result = alarmmgr_set_type(alarm_info, ALARM_TYPE_DEFAULT);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       result = alarmmgr_add_alarm_noti_with_localtime(alarm_info, noti, alarm_id);
-       alarmmgr_free_alarm(alarm_info);
-
-       return convert_error_code_to_alarm(__FUNCTION__, result);
+       return __alarm_noti_with_local_time(ALARM_REPEAT_MODE_WEEKLY, week_flag, noti, date, alarm_id);
 }
 
 int alarm_get_scheduled_recurrence_week_flag(int alarm_id, int *week_flag)
 {
        alarm_error_t result;
-       alarm_entry_t *entry = NULL;
+       alarm_entry_t entry = {0,};
        alarm_repeat_mode_t mode;
        int value;
 
@@ -575,33 +381,17 @@ int alarm_get_scheduled_recurrence_week_flag(int alarm_id, int *week_flag)
                return ALARM_ERROR_INVALID_PARAMETER;
        }
 
-       entry = alarmmgr_create_alarm();
-
-       result = alarmmgr_get_info(alarm_id, entry);
-       if (result != ALARMMGR_RESULT_SUCCESS) {
-               if (entry != NULL)
-                       alarmmgr_free_alarm(entry);
-
+       result = alarmmgr_get_info(alarm_id, &entry);
+       if (result != ALARMMGR_RESULT_SUCCESS)
                return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
 
-       result = alarmmgr_get_repeat_mode(entry, &mode, &value);
-
-       if (mode != ALARM_REPEAT_MODE_WEEKLY) {
-               if (entry != NULL)
-                       alarmmgr_free_alarm(entry);
+       result = alarmmgr_get_repeat_mode(&entry, &mode, &value);
 
+       if (mode != ALARM_REPEAT_MODE_WEEKLY)
                return ALARM_ERROR_INVALID_PARAMETER;
-       }
-
-       if (result != ALARMMGR_RESULT_SUCCESS) {
-               if (entry != NULL)
-                       alarmmgr_free_alarm(entry);
 
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       alarmmgr_free_alarm(entry);
+       if (result != ALARMMGR_RESULT_SUCCESS)
+                       return convert_error_code_to_alarm(__FUNCTION__, result);
 
        (*week_flag) = value;
 
@@ -668,7 +458,7 @@ int alarm_get_global(int alarm_id, bool *global)
 int alarm_update_delay(int alarm_id, int delay)
 {
        alarm_date_t internal_time;
-       alarm_entry_t *alarm_info;
+       alarm_entry_t alarm_info = {0,};
        int result;
        struct timeval current_time;
        struct tm date;
@@ -694,23 +484,12 @@ int alarm_update_delay(int alarm_id, int delay)
        internal_time.min = date.tm_min;
        internal_time.sec = date.tm_sec;
 
-       alarm_info = alarmmgr_create_alarm();
-       if (alarm_info == NULL) {
-               /* LCOV_EXCL_START */
-               LOGE("OUT_OF_MEMORY(0x%08x)", ALARM_ERROR_OUT_OF_MEMORY);
-               return ALARM_ERROR_OUT_OF_MEMORY;
-               /* LCOV_EXCL_STOP */
-       }
-
-       result = alarmmgr_set_time(alarm_info, internal_time);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
+       result = alarmmgr_set_time(&alarm_info, internal_time);
+       if (result < 0)
+                       return convert_error_code_to_alarm(__FUNCTION__, result);
 
-       result = alarmmgr_update_alarm(alarm_id, alarm_info,
+       result = alarmmgr_update_alarm(alarm_id, &alarm_info,
                        ALARM_UPDATE_FLAG_TIME);
-       alarmmgr_free_alarm(alarm_info);
 
        return convert_error_code_to_alarm(__FUNCTION__, result);
 }
@@ -718,7 +497,7 @@ int alarm_update_delay(int alarm_id, int delay)
 int alarm_update_date(int alarm_id, struct tm *date)
 {
        alarm_date_t internal_time;
-       alarm_entry_t *alarm_info;
+       alarm_entry_t alarm_info = {0,};
        int result;
 
        if (date == NULL || alarm_id < 0) {
@@ -726,14 +505,6 @@ int alarm_update_date(int alarm_id, struct tm *date)
                return ALARM_ERROR_INVALID_PARAMETER;
        }
 
-       alarm_info = alarmmgr_create_alarm();
-       if (alarm_info == NULL) {
-               /* LCOV_EXCL_START */
-               LOGE("OUT_OF_MEMORY(0x%08x)", ALARM_ERROR_OUT_OF_MEMORY);
-               return ALARM_ERROR_OUT_OF_MEMORY;
-               /* LCOV_EXCL_STOP */
-       }
-
        internal_time.year = date->tm_year + 1900;
        internal_time.month = date->tm_mon + 1;
        internal_time.day = date->tm_mday;
@@ -742,22 +513,19 @@ int alarm_update_date(int alarm_id, struct tm *date)
        internal_time.min = date->tm_min;
        internal_time.sec = date->tm_sec;
 
-       result = alarmmgr_set_time(alarm_info, internal_time);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
+       result = alarmmgr_set_time(&alarm_info, internal_time);
+       if (result < 0)
                return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
 
-       result = alarmmgr_update_alarm(alarm_id, alarm_info,
+       result = alarmmgr_update_alarm(alarm_id, &alarm_info,
                        ALARM_UPDATE_FLAG_TIME);
-       alarmmgr_free_alarm(alarm_info);
 
        return convert_error_code_to_alarm(__FUNCTION__, result);
 }
 
 int alarm_update_period(int alarm_id, int period)
 {
-       alarm_entry_t *alarm_info;
+       alarm_entry_t alarm_info = {0,};
        int result;
 
        if (period < 0 || alarm_id < 0) {
@@ -765,38 +533,26 @@ int alarm_update_period(int alarm_id, int period)
                return ALARM_ERROR_INVALID_PARAMETER;
        }
 
-       alarm_info = alarmmgr_create_alarm();
-       if (alarm_info == NULL) {
-               /* LCOV_EXCL_START */
-               LOGE("OUT_OF_MEMORY(0x%08x)", ALARM_ERROR_OUT_OF_MEMORY);
-               return ALARM_ERROR_OUT_OF_MEMORY;
-               /* LCOV_EXCL_STOP */
-       }
-
        if (period == 0) {
-               result = alarmmgr_update_alarm(alarm_id, alarm_info,
+               result = alarmmgr_update_alarm(alarm_id, &alarm_info,
                                ALARM_UPDATE_FLAG_CLEAR_PERIOD);
-               alarmmgr_free_alarm(alarm_info);
                return convert_error_code_to_alarm(__FUNCTION__, result);
        }
 
-       result = alarmmgr_set_repeat_mode(alarm_info,
+       result = alarmmgr_set_repeat_mode(&alarm_info,
                        ALARM_REPEAT_MODE_REPEAT, period);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
+       if (result < 0)
+                       return convert_error_code_to_alarm(__FUNCTION__, result);
 
-       result = alarmmgr_update_alarm(alarm_id, alarm_info,
+       result = alarmmgr_update_alarm(alarm_id, &alarm_info,
                        ALARM_UPDATE_FLAG_PERIOD);
-       alarmmgr_free_alarm(alarm_info);
 
        return convert_error_code_to_alarm(__FUNCTION__, result);
 }
 
 int alarm_update_week_flag(int alarm_id, int week_flag)
 {
-       alarm_entry_t *alarm_info;
+       alarm_entry_t alarm_info = {0,};
        int result;
 
        if (week_flag < 0 || alarm_id < 0) {
@@ -804,30 +560,18 @@ int alarm_update_week_flag(int alarm_id, int week_flag)
                return ALARM_ERROR_INVALID_PARAMETER;
        }
 
-       alarm_info = alarmmgr_create_alarm();
-       if (alarm_info == NULL) {
-               /* LCOV_EXCL_START */
-               LOGE("OUT_OF_MEMORY(0x%08x)", ALARM_ERROR_OUT_OF_MEMORY);
-               return ALARM_ERROR_OUT_OF_MEMORY;
-               /* LCOV_EXCL_STOP */
-       }
-
        if (week_flag == 0) {
-               result = alarmmgr_update_alarm(alarm_id, alarm_info,
+               result = alarmmgr_update_alarm(alarm_id, &alarm_info,
                                ALARM_UPDATE_FLAG_CLEAR_WEEK_FLAG);
-               alarmmgr_free_alarm(alarm_info);
                return convert_error_code_to_alarm(__FUNCTION__, result);
        }
 
-       result = alarmmgr_set_repeat_mode(alarm_info, ALARM_REPEAT_MODE_WEEKLY, week_flag);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
+       result = alarmmgr_set_repeat_mode(&alarm_info, ALARM_REPEAT_MODE_WEEKLY, week_flag);
+       if (result < 0)
                return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
 
-       result = alarmmgr_update_alarm(alarm_id, alarm_info,
+       result = alarmmgr_update_alarm(alarm_id, &alarm_info,
                        ALARM_UPDATE_FLAG_WEEK);
-       alarmmgr_free_alarm(alarm_info);
 
        return convert_error_code_to_alarm(__FUNCTION__, result);
 }
@@ -840,12 +584,8 @@ int alarm_schedule_service_once_after_delay(app_control_h app_control, int delay
        bundle *bundle_data;
        int result = 0;
 
-       if (app_control == NULL) {
-               LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
-               return ALARM_ERROR_INVALID_PARAMETER;
-       }
-
-       if (app_control_to_bundle(app_control, &bundle_data) != APP_CONTROL_ERROR_NONE) {
+       if (app_control == NULL ||
+                       app_control_to_bundle(app_control, &bundle_data) != APP_CONTROL_ERROR_NONE) {
                LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
                return ALARM_ERROR_INVALID_PARAMETER;
        }
@@ -857,61 +597,7 @@ int alarm_schedule_service_once_after_delay(app_control_h app_control, int delay
 
 int alarm_schedule_service_once_at_date(app_control_h app_control, struct tm *date, int *alarm_id)
 {
-       alarm_date_t internal_time;
-       alarm_entry_t* alarm_info;
-       bundle *bundle_data;
-       int result;
-
-       if (app_control == NULL || date == NULL) {
-               LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
-               return ALARM_ERROR_INVALID_PARAMETER;
-       }
-
-       if (app_control_to_bundle(app_control, &bundle_data) != APP_CONTROL_ERROR_NONE) {
-               LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
-               return ALARM_ERROR_INVALID_PARAMETER;
-       }
-
-       alarm_info = alarmmgr_create_alarm();
-
-       internal_time.year = date->tm_year + 1900;
-       internal_time.month = date->tm_mon + 1;
-       internal_time.day = date->tm_mday;
-
-       internal_time.hour = date->tm_hour;
-       internal_time.min = date->tm_min;
-       internal_time.sec = date->tm_sec;
-
-       result = alarmmgr_set_time(alarm_info, internal_time);
-
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       result = alarmmgr_set_repeat_mode(alarm_info, ALARM_REPEAT_MODE_ONCE, 0);
-
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       result = alarmmgr_set_type(alarm_info, ALARM_TYPE_DEFAULT | ALARM_TYPE_EXACT_SERVICE_APP);
-
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       result = alarmmgr_add_alarm_appsvc_with_localtime(alarm_info, bundle_data, alarm_id);
-
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       alarmmgr_free_alarm(alarm_info);
-       return ALARM_ERROR_NONE;
+       return __add_alarm_appsvc_with_localtime(app_control, date, ALARM_REPEAT_MODE_ONCE, 0, ALARM_TYPE_DEFAULT | ALARM_TYPE_EXACT_SERVICE_APP, alarm_id);
 }
 
 int alarm_set_systime(int new_time)
@@ -951,55 +637,5 @@ int alarm_set_timezone(char *tzpath_str)
 int alarm_schedule_service_with_recurrence_seconds(app_control_h app_control,
                struct tm *date, int period, int *alarm_id)
 {
-       alarm_date_t internal_time;
-       alarm_entry_t *alarm_info;
-       bundle *bundle_data;
-       int result;
-
-       if (app_control == NULL || date == NULL) {
-               LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
-               return ALARM_ERROR_INVALID_PARAMETER;
-       }
-
-       if (app_control_to_bundle(app_control, &bundle_data) != APP_CONTROL_ERROR_NONE) {
-               LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
-               return ALARM_ERROR_INVALID_PARAMETER;
-       }
-
-       alarm_info = alarmmgr_create_alarm();
-
-       internal_time.year = date->tm_year + 1900;
-       internal_time.month = date->tm_mon + 1;
-       internal_time.day = date->tm_mday;
-
-       internal_time.hour = date->tm_hour;
-       internal_time.min = date->tm_min;
-       internal_time.sec = date->tm_sec;
-
-       result = alarmmgr_set_time(alarm_info, internal_time);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       if (period > 0) {
-               result = alarmmgr_set_repeat_mode(alarm_info, ALARM_REPEAT_MODE_REPEAT,
-                               period);
-               if (result < 0) {
-                       alarmmgr_free_alarm(alarm_info);
-                       return convert_error_code_to_alarm(__FUNCTION__, result);
-               }
-       }
-
-       result = alarmmgr_set_type(alarm_info,
-                       ALARM_TYPE_DEFAULT | ALARM_TYPE_EXACT_SERVICE_APP);
-       if (result < 0) {
-               alarmmgr_free_alarm(alarm_info);
-               return convert_error_code_to_alarm(__FUNCTION__, result);
-       }
-
-       result = alarmmgr_add_alarm_appsvc_with_localtime(alarm_info, bundle_data, alarm_id);
-       alarmmgr_free_alarm(alarm_info);
-
-       return convert_error_code_to_alarm(__FUNCTION__, result);
+       return __add_alarm_appsvc_with_localtime(app_control, date, ALARM_REPEAT_MODE_REPEAT, period, ALARM_TYPE_DEFAULT | ALARM_TYPE_EXACT_SERVICE_APP, alarm_id);
 }