- Correct the data handle free functions.
- Correct the order of module deinit.
Change-Id: I71d1456789520bb13f7b83e6c4a059dec4c0a433
Signed-off-by: Dewal Agarwal <d1.agarwal@samsung.com>
if (ptr != NULL) { \
free(ptr); \
ptr = NULL; \
- } \
+ }
/* setting free memory using glib-API */
#define BM_GFREE(ptr) \
if (ptr != NULL) { \
g_free(ptr); \
ptr = NULL; \
- } \
+ }
#ifdef __cplusplus
}
void bm_set_free_atm_st1_list(GSList *atm_list);
-void bm_set_free_ble_data_handle(bm_bluetooth_st *handle);
+void bm_set_free_ble_data_handle(bm_bluetooth_st **bt_handle);
-void bm_set_free_wifi_data_handle(bm_wifi_st *handle);
+void bm_set_free_wifi_data_handle(bm_wifi_st **wifi_handle);
-void bm_set_free_cpu_data_handle(bm_cpu_st *handle);
+void bm_set_free_cpu_data_handle(bm_cpu_st **cpu_handle);
-void bm_set_free_display_data_handle(bm_display_st *handle);
+void bm_set_free_display_data_handle(bm_display_st **display_handle);
-void bm_set_free_device_network_data_handle(bm_device_network_st *handle);
+void bm_set_free_device_network_data_handle(bm_device_network_st **dn_handle);
#ifdef DISABLE_FEATURE_DATA_FROM_GPS_HRM_PLUGIN
-void bm_set_free_gps_sensor_data_handle(bm_gps_st *handle);
+void bm_set_free_gps_sensor_data_handle(bm_gps_st **gps_handle);
-void bm_set_free_hrm_sensor_data_handle(bm_hrm_sensor_st *handle);
+void bm_set_free_hrm_sensor_data_handle(bm_hrm_sensor_st **hrm_handle);
#endif /* DISABLE_FEATURE_DATA_FROM_GPS_HRM_PLUGIN */
-void bm_set_free_data_handles(bm_feature_data_h data_h);
+void bm_set_free_data_handles(bm_feature_data_h* data_h);
void bm_set_free_gslist_appid_map(GSList *list);
#ifdef __cplusplus
/* set flag for skipping next period request */
bm_engine_set_req_flag_handle(BM_PLUGIN_ID_BLE, false);
- bm_set_free_ble_data_handle(bt_data_h);
+ bm_set_free_ble_data_handle(&bt_data_h);
EXIT;
return;
/* set flag for skipping next period request */
bm_engine_set_req_flag_handle(BM_PLUGIN_ID_WIFI, false);
- bm_set_free_wifi_data_handle(wifi_data_h);
+ bm_set_free_wifi_data_handle(&wifi_data_h);
EXIT;
return;
/* set flag for skipping next period request */
bm_engine_set_req_flag_handle(BM_PLUGIN_ID_CPU, false);
- bm_set_free_cpu_data_handle(cpu_data_h);
+ bm_set_free_cpu_data_handle(&cpu_data_h);
EXIT;
return;
/* set flag for skipping next period request */
bm_engine_set_req_flag_handle(BM_PLUGIN_ID_DISPLAY, false);
- bm_set_free_display_data_handle(display_data_h);
+ bm_set_free_display_data_handle(&display_data_h);
EXIT;
return;
/* set flag for skipping next period request */
bm_engine_set_req_flag_handle(BM_PLUGIN_ID_DEVICE_NETWORK, false);
- bm_set_free_device_network_data_handle(device_network_data_h);
+ bm_set_free_device_network_data_handle(&device_network_data_h);
EXIT;
return;
/* set flag for skipping next period request */
bm_engine_set_req_flag_handle(BM_PLUGIN_ID_GPS_SENSOR, false);
- bm_set_free_gps_sensor_data_handle(gps_data_h);
+ bm_set_free_gps_sensor_data_handle(&gps_data_h);
EXIT;
return;
/* set flag for skipping next period request */
bm_engine_set_req_flag_handle(BM_PLUGIN_ID_HRM_SENSOR, false);
- bm_set_free_hrm_sensor_data_handle(hrm_sensor_data_h);
+ bm_set_free_hrm_sensor_data_handle(&hrm_sensor_data_h);
EXIT;
return;
GHashTable *gl_hash = NULL;
static struct bm_req_feature_data_handle_flag_s *bm_req_flag_h = NULL;
int battery_capacity = 500;
+int gtimeo_id[2];
int bm_engine_get_usage_by_app_id_for_resource_id(const gchar *app_id, gint resource_id, gint duration, int *b_usage)
{
int ret_val = BATTERY_MONITOR_ERROR_NONE;
bool mode = false;
- gl_hash = g_hash_table_new_full(g_str_hash, g_str_equal, bm_data_free, g_free);
+ gl_hash = g_hash_table_new_full(g_str_hash, g_str_equal, bm_data_free, bm_atm_st1_free);
if (!gl_hash)
_ERR("Global Hash creation failed");
BM_CHECK_VAL((ret_val == BATTERY_MONITOR_ERROR_NONE), "battery session logging failure");
/* set free all the data handles */
- //bm_set_free_data_handles(bm_data_handle);
+ if (bm_data_handle != NULL) {
+ _DBG("Call Handle Free");
+ bm_set_free_data_handles(&bm_data_handle);
+ }
+ /* set free global hash values */
if (gl_hash) {
g_hash_table_destroy(gl_hash);
gl_hash = NULL;
_ERR("memory allocation failed - data handle");
return BATTERY_MONITOR_ERROR_OUT_OF_MEMORY;
}
-
- bm_req_flag_h = (struct bm_req_feature_data_handle_flag_s *)
- calloc(1, sizeof(struct bm_req_feature_data_handle_flag_s));
- if (!bm_req_flag_h) {
- _ERR("memory allocation failed - requet flag handle");
- return BATTERY_MONITOR_ERROR_OUT_OF_MEMORY;
- }
-
- bm_set_req_flag_handles(true);
}
/* request data from each plugin & store its handle */
int ret_val = BATTERY_MONITOR_ERROR_NONE;
- g_timeout_add(BATTERY_MONITOR_GET_DATA_JOB_PERIOD, bm_request_feature_data, NULL);
+ bm_req_flag_h = (struct bm_req_feature_data_handle_flag_s *)
+ calloc(1, sizeof(struct bm_req_feature_data_handle_flag_s));
+ if (!bm_req_flag_h) {
+ _ERR("memory allocation failed - requet flag handle");
+ return BATTERY_MONITOR_ERROR_OUT_OF_MEMORY;
+ }
- g_timeout_add(BATTERY_MONITOR_DELETE_DB_JOB_PERIOD, bm_delete_data_from_db, NULL);
+ bm_set_req_flag_handles(true);
+
+ gtimeo_id[0] = 0; gtimeo_id[1] = 0;
+ gtimeo_id[0] = g_timeout_add(BATTERY_MONITOR_GET_DATA_JOB_PERIOD, bm_request_feature_data, NULL);
+ gtimeo_id[1] = g_timeout_add(BATTERY_MONITOR_DELETE_DB_JOB_PERIOD, bm_delete_data_from_db, NULL);
+ _DBG("timeout with id %d and %d added", gtimeo_id[0], gtimeo_id[1]);
ret_val = bm_clean_db_table_for_job_id();
if (ret_val != BATTERY_MONITOR_ERROR_NONE)
{
ENTER;
+ /* remove timeouts*/
+ for (int i = 0; i < 2; i++) {
+ if (gtimeo_id[i] != 0)
+ g_source_remove(gtimeo_id[i]);
+ }
+
/* set all data-handle free */
if (bm_data_handle != NULL) {
_DBG("setting handle free - deinitializing");
- bm_set_free_data_handles(bm_data_handle);
+ bm_set_free_data_handles(&bm_data_handle);
}
/* set flag handle free*/
{
ENTER;
- /* database de-initialization */
- deinitialize_database();
-
- /* cynara de-initialization */
- deinitialize_cynara();
+ /* History-Listener deinitialization */
+ bd_deinitialize_listeners();
- /* plugin-manager de-initialization */
- deinitialize_plugin_manager();
+ /* battery-dump deinitialization */
+ bd_deinitialize_battery_dump();
/* power-engine deinitialization */
deinitialize_power_engine();
- /* battery-dump deinitialization */
- bd_deinitialize_battery_dump();
+ /* plugin-manager de-initialization */
+ deinitialize_plugin_manager();
- /* History-Listener deinitialization */
+ /* database de-initialization */
+ deinitialize_database();
_INFO("de-initialization success");
- bd_deinitialize_listeners();
EXIT;
return;
_DBG("delete - app_id(%s)", (char *)data);
- BM_GFREE(data);
+ BM_FREE(data);
EXIT;
return;
return;
}
- app_time_map_st1 *node = (app_time_map_st1 *)data;
-
- BM_FREE(node);
+ BM_FREE(data);
EXIT;
return;
return;
}
- app_time_map_st2 *node = (app_time_map_st2 *)data;
-
- BM_FREE(node);
+ BM_FREE(data);
EXIT;
return;
return;
}
-
-void bm_set_free_ble_data_handle(bm_bluetooth_st *handle)
+void bm_set_free_ble_data_handle(bm_bluetooth_st **bt_handle)
{
ENTER;
- if (!handle) {
+ if (!(*bt_handle)) {
_ERR("data-handle not available");
return;
}
+ bm_bluetooth_st *handle = *bt_handle;
+
GSList *atm_list = NULL, *data_list_iterator = NULL;
_DBG("inside data_handle");
return;
}
-void bm_set_free_wifi_data_handle(bm_wifi_st *handle)
+void bm_set_free_wifi_data_handle(bm_wifi_st **wifi_handle)
{
ENTER;
- if (!handle) {
+ if (!(*wifi_handle)) {
_ERR("data-handle not available");
return;
}
+ bm_wifi_st *handle = *wifi_handle;
+
GSList *atm_list = NULL, *data_list_iterator = NULL;
_DBG("inside data_handle");
}
-void bm_set_free_cpu_data_handle(bm_cpu_st *handle)
+void bm_set_free_cpu_data_handle(bm_cpu_st **cpu_handle)
{
ENTER;
- if (!handle) {
+ if (!(*cpu_handle)) {
_ERR("data-handle not available");
return;
}
+ bm_cpu_st *handle = *cpu_handle;
+
GSList *atm_list = NULL, *data_list_iterator = NULL;
_DBG("inside data_handle");
return;
}
-void bm_set_free_display_data_handle(bm_display_st *handle)
+void bm_set_free_display_data_handle(bm_display_st **display_handle)
{
ENTER;
- if (!handle) {
+ if (!(*display_handle)) {
_ERR("data-handle not available");
return;
}
- GSList *atm_list = NULL, *data_list_iterator = NULL;
+ bm_display_st *handle = *display_handle;
+
+ GSList *atm_list = NULL;
+ GSList *data_list_iterator = NULL;
_DBG("inside data_handle");
return;
}
-void bm_set_free_device_network_data_handle(bm_device_network_st *handle)
+void bm_set_free_device_network_data_handle(bm_device_network_st **dn_handle)
{
ENTER;
- if (!handle) {
+ if (!(*dn_handle)) {
_ERR("data-handle not available");
return;
}
+ bm_device_network_st *handle = *dn_handle;
+
GSList *atm_list = NULL, *data_list_iterator = NULL;
_DBG("inside data_handle");
}
#ifdef DISABLE_FEATURE_DATA_FROM_GPS_HRM_PLUGIN
-void bm_set_free_gps_sensor_data_handle(bm_gps_st *handle)
+void bm_set_free_gps_sensor_data_handle(bm_gps_st **gps_handle)
{
ENTER;
- if (!handle) {
+ if (!(*gps_handle)) {
_ERR("data-handle not available");
return;
}
+ bm_gps_st *handle = *gps_handle;
+
GSList *atm_list = NULL, *data_list_iterator = NULL;
_DBG("inside data_handle");
return;
}
-void bm_set_free_hrm_sensor_data_handle(bm_hrm_sensor_st *handle)
+void bm_set_free_hrm_sensor_data_handle(bm_hrm_sensor_st **hrm_handle)
{
ENTER;
- if (!handle) {
+ if (!(*hrm_handle)) {
_ERR("data-handle not available");
return;
}
+ bm_hrm_sensor_st *handle = *hrm_handle;
+
GSList *atm_list = NULL, *data_list_iterator = NULL;
_DBG("inside data_handle");
}
#endif /* DISABLE_FEATURE_DATA_FROM_GPS_HRM_PLUGIN */
-void bm_set_free_data_handles(bm_feature_data_h data_h)
+void bm_set_free_data_handles(bm_feature_data_h* data_hdl)
{
ENTER;
- if (!data_h) {
- _ERR("data handles not available");
- return;
- }
-
- bm_set_free_ble_data_handle(data_h->bm_ble_handle);
- bm_set_free_wifi_data_handle(data_h->bm_wifi_handle);
- bm_set_free_cpu_data_handle(data_h->bm_cpu_handle);
- bm_set_free_display_data_handle(data_h->bm_display_handle);
- bm_set_free_device_network_data_handle(data_h->bm_dn_handle);
+ bm_set_free_ble_data_handle(&((*data_hdl)->bm_ble_handle));
+ bm_set_free_wifi_data_handle(&((*data_hdl)->bm_wifi_handle));
+ bm_set_free_cpu_data_handle(&((*data_hdl)->bm_cpu_handle));
+ bm_set_free_display_data_handle(&((*data_hdl)->bm_display_handle));
+ bm_set_free_device_network_data_handle(&((*data_hdl)->bm_dn_handle));
#ifdef DISABLE_FEATURE_DATA_FROM_GPS_HRM_PLUGIN
- bm_set_free_gps_sensor_data_handle(data_h->bm_gps_handle);
- bm_set_free_hrm_sensor_data_handle(data_h->bm_hrm_handle);
+ bm_set_free_gps_sensor_data_handle(&((*data_hdl)->bm_gps_handle));
+ bm_set_free_hrm_sensor_data_handle(&((*data_hdl)->bm_hrm_handle));
#endif /* DISABLE_FEATURE_DATA_FROM_GPS_HRM_PLUGIN */
- BM_FREE(data_h);
+ BM_FREE(*data_hdl);
EXIT;
return;