GHashTable *app_list = NULL;
static GHashTable *pid_map = NULL;
+static void bd_set_free_data_object(void)
+{
+ BD_CHECK_VALIDITY_RETURN((data_obj != NULL), {});
+
+ history_item_s* obj = data_obj;
+
+ /* event tag string */
+ if (obj->event_tag != NULL) {
+ if (obj->event_tag->string_info != NULL)
+ g_string_free(obj->event_tag->string_info, TRUE);
+ free(obj->event_tag);
+ obj->event_tag = NULL;
+ }
+ /* wakelock tag string */
+ if (obj->wakelock_tag != NULL) {
+ if (obj->wakelock_tag->string_info != NULL)
+ g_string_free(obj->wakelock_tag->string_info, TRUE);
+ free(obj->wakelock_tag);
+ obj->wakelock_tag = NULL;
+ }
+ /* wakereason tag string */
+ if (obj->wakereason_tag != NULL) {
+ if (obj->wakereason_tag->string_info != NULL)
+ g_string_free(obj->wakereason_tag->string_info, TRUE);
+ free(obj->wakereason_tag);
+ obj->wakereason_tag = NULL;
+ }
+ return;
+}
+
static void bd_get_app_id_from_table(gint pid, char **app_id)
{
if (pid_map == NULL) {
data_obj->event_tag->uid = 1000;
- data_obj->event_tag->string_info = g_string_sized_new(7);
- if (!data_obj->event_tag->string_info) {
- _ERR("memory allocation failed ");
- return 1;
- }
+ data_obj->event_tag->string_info = g_string_new(app_id);
- g_string_append_printf(data_obj->event_tag->string_info, "%s", app_id);
+ BD_CHECK_FOR_VALIDITY((data_obj->event_tag->string_info != NULL), {},
+ BATTERY_MONITOR_ERROR_OUT_OF_MEMORY);
+
+ _DBG("set string_info - [%s]", data_obj->event_tag->string_info->str);
EXIT;
return 0;
data_obj->event_code = ET_NONE;
data_obj->event_tag = NULL;
data_obj->wakereason_tag = NULL;
+
data_obj->wakereason_tag = (history_tag_s *)calloc(1, sizeof(history_tag_s));
if (data_obj->wakereason_tag) {
wakeup_hsp = ++listener_hsp;
_DBG("Wakereason Tag creation succeeded \n");
data_obj->wakereason_tag->sp_idx = wakeup_hsp;
data_obj->wakereason_tag->uid = 1000;
- data_obj->wakereason_tag->string_info = g_string_sized_new(10);
- if (data_obj->wakereason_tag->string_info == NULL) {
- _ERR("data_obj->wakereason_tag->string_info creation failed");
- BM_FREE(data_obj->wakereason_tag);
- return;
- }
- g_string_append_printf(data_obj->wakereason_tag->string_info, "%s", "Tizen");
+
+ data_obj->wakereason_tag->string_info = g_string_new("Tizen");
+ BD_CHECK_VALIDITY_RETURN((data_obj->wakereason_tag->string_info != NULL),
+ BM_FREE(data_obj->wakereason_tag));
+
+ _DBG("wakelock reason tag, string_info - [%s]",
+ data_obj->wakereason_tag->string_info->str);
} else {
_ERR(" data_obj->wakereason_tag object creation fails ");
return;
data_obj->event_code = ET_NONE;
data_obj->event_tag = NULL;
data_obj->wakereason_tag = NULL;
+
data_obj->wakereason_tag = (history_tag_s *)calloc(1, sizeof(history_tag_s));
if (data_obj->wakereason_tag) {
_DBG("Wakereason Tag creation succeeded \n");
data_obj->wakereason_tag->sp_idx = wakeup_hsp;
data_obj->wakereason_tag->uid = 1000;
- data_obj->wakereason_tag->string_info = g_string_sized_new(10);
- if (data_obj->wakereason_tag->string_info == NULL) {
- _ERR("data_obj->wakereason_tag->string_info creation failed");
- BM_FREE(data_obj->wakereason_tag);
- return;
- }
- g_string_append_printf(data_obj->wakereason_tag->string_info, "%s", "Tizen");
+
+ data_obj->wakereason_tag->string_info = g_string_new("Tizen");
+ BD_CHECK_VALIDITY_RETURN((data_obj->wakereason_tag->string_info != NULL),
+ BM_FREE(data_obj->wakereason_tag));
+
+ _DBG("wakelock reason tag, string_info - [%s]",
+ data_obj->wakereason_tag->string_info->str);
} else {
_ERR(" data_obj->wakereason_tag object creation fails ");
return;
return;
}
-static int bd_listener_set_power_lock_unlock_change_data(int lock)
+static int bd_listener_set_power_lock_unlock_change_data(int lock, char *app_id)
{
ENTER;
- _INFO("lock change = %d", lock);
+ BD_CHECK_FOR_VALIDITY((app_id != NULL), {}, BATTERY_MONITOR_ERROR_INVALID_PARAMETER);
+ BD_CHECK_FOR_VALIDITY((data_obj != NULL), BM_FREE(app_id), BATTERY_MONITOR_ERROR_NULL_POINTER);
+
+ _INFO("lock change - %d, app - %s", lock, app_id);
static int prev_wakeup = 0;
+ static int lock_hsp = 0;
- if (prev_wakeup == lock)
+ if (prev_wakeup == lock) {
+ _DBG("prev & current wakeups are same");
+ BM_FREE(app_id);
return 1;
- else
+ } else {
prev_wakeup = lock;
+ }
+ if (lock) {
+ data_obj->event_code = ET_NONE;
+ data_obj->event_tag = NULL;
+ data_obj->wakelock_tag = NULL;
- static int lock_hsp = 0;
+ data_obj->wakelock_tag = (history_tag_s *)calloc(1, sizeof(history_tag_s));
+ if (data_obj->wakelock_tag) {
- if (data_obj) {
- if (lock) {
- data_obj->event_code = ET_NONE;
- data_obj->wakelock_tag = NULL;
- data_obj->event_tag = NULL;
- data_obj->wakelock_tag = (history_tag_s *)calloc(1, sizeof(history_tag_s));
- if (data_obj->wakelock_tag) {
- lock_hsp = ++listener_hsp;
- _DBG("wakelock Tag creation succeeded \n");
- data_obj->wakelock_tag->sp_idx = lock_hsp;
- data_obj->wakelock_tag->uid = 1000;
- data_obj->wakelock_tag->string_info = g_string_sized_new(10);
- BM_CHECK_MEM_ALLOC(data_obj->wakelock_tag->string_info, {BM_FREE(data_obj->wakelock_tag); });
- g_string_append_printf(data_obj->wakelock_tag->string_info, "%s", "Tizen");
- //WRITE THE WL TAG
- } else {
- _ERR(" data_obj->wakelock_tag object creation fails ");
- return 1;
- }
- data_obj->state_1 |= ST1_WAKE_LOCK_FLAG;
+ lock_hsp = ++listener_hsp;
+ data_obj->wakelock_tag->sp_idx = lock_hsp;
+ data_obj->wakelock_tag->uid = 1000;
+
+ data_obj->wakelock_tag->string_info = g_string_new(app_id);
+ BD_CHECK_FOR_VALIDITY((data_obj->wakelock_tag->string_info != NULL), {},
+ BATTERY_MONITOR_ERROR_OUT_OF_MEMORY);
+
+ _DBG("wakelock tag created, string_info - [%s]",
+ data_obj->wakelock_tag->string_info->str);
+
+ BM_FREE(app_id);
} else {
- data_obj->event_code = ET_NONE;
- data_obj->wakelock_tag = NULL;
- data_obj->event_tag = NULL;
- //WAKE LOCK TAG INFORMATION NOT REQ. AT UNSET.
- data_obj->state_1 &= ~(ST1_WAKE_LOCK_FLAG);
+ _ERR(" object creation failure ");
+ BM_FREE(app_id);
+ return 1;
}
+ data_obj->state_1 |= ST1_WAKE_LOCK_FLAG;
+ } else {
+ data_obj->event_code = ET_NONE;
+ data_obj->wakelock_tag = NULL;
+ data_obj->event_tag = NULL;
+ //WAKE LOCK TAG INFORMATION NOT REQ. AT UNSET.
+ data_obj->state_1 &= ~(ST1_WAKE_LOCK_FLAG);
}
EXIT;
bd_listener_set_signal_strength_change_data(val);
break;
case LISTEN_POWERLOCKUNLOCK_STATE:
- if (bd_listener_set_power_lock_unlock_change_data(val) == BATTERY_MONITOR_ERROR_NONE)
+ if (bd_listener_set_power_lock_unlock_change_data(val, app) == BATTERY_MONITOR_ERROR_NONE)
break;
else
return;
if (data_obj->event_tag && type != LISTEN_APP_STATUS) {
data_obj->event_tag->uid = 1000;
- data_obj->event_tag->string_info = g_string_sized_new(7);
- if (!data_obj->event_tag->string_info) {
- _ERR("memory allocation failed ");
- return;
- }
- g_string_append_printf(data_obj->event_tag->string_info, "%s", "Tizen");
+ data_obj->event_tag->string_info = g_string_new("Tizen");
+ BD_CHECK_VALIDITY_RETURN((data_obj->event_tag->string_info != NULL), {});
}
if (data_obj->event_tag) {
if (bd_store_history_item(data_obj) != BATTERY_MONITOR_ERROR_NONE) {
_ERR("Failed to store history items ");
+ bd_set_free_data_object();
return;
}
pid_map = NULL;
}
- if (data_obj != NULL && data_obj->event_tag != NULL) {
- BM_FREE(data_obj->event_tag->string_info);
- BM_FREE(data_obj->event_tag);
- }
-
- if (data_obj != NULL && data_obj->wakelock_tag != NULL) {
- BM_FREE(data_obj->wakelock_tag->string_info);
- BM_FREE(data_obj->wakelock_tag);
- }
-
- if (data_obj != NULL && data_obj->wakereason_tag != NULL) {
- BM_FREE(data_obj->wakereason_tag->string_info);
- BM_FREE(data_obj->wakereason_tag);
- }
+ bd_set_free_data_object();
BM_FREE(data_obj);