Source Code fix for ASAN Build 25/215225/2
authorDewal Agarwal <d1.agarwal@samsung.com>
Thu, 3 Oct 2019 10:18:10 +0000 (15:48 +0530)
committerDewal Agarwal <d1.agarwal@samsung.com>
Wed, 16 Oct 2019 08:09:17 +0000 (13:39 +0530)
Change-Id: I7003994824d5c1855e6b052c277e732a97f691a6
Signed-off-by: Dewal Agarwal <d1.agarwal@samsung.com>
include/bm_plugin_manager.h
include/bm_power_engine.h
src/bm_callback_handler.c
src/bm_plugin_manager.c
src/bm_power_engine.c

index ec0b667..1688d37 100644 (file)
@@ -33,16 +33,6 @@ struct bm_plugin_info_s {
 
 typedef struct bm_plugin_info_s bm_plugin_info_h;
 
-const bm_callbacks_st ble_cb;
-const bm_callbacks_st wifi_cb;
-const bm_callbacks_st cpu_cb;
-const bm_callbacks_st display_cb;
-const bm_callbacks_st device_network_cb;
-#ifdef DISABLE_FEATURE_DATA_FROM_GPS_HRM_PLUGIN
-const bm_callbacks_st gps_cb;
-const bm_callbacks_st hrm_cb;
-#endif /* DISABLE_FEATURE_DATA_FROM_GPS_HRM_PLUGIN */
-
 /*
  * This function provides the name of plugin for use during error handling.
  */
index f89f439..57a3779 100644 (file)
@@ -18,8 +18,6 @@
 #ifndef __BM_ENGINE_H__
 #define __BM_ENGINE_H__
 
-#include <job_scheduler.h>
-
 #include "bm_plugin_interface.h"
 
 #ifdef __cplusplus
@@ -67,7 +65,7 @@ struct bm_req_feature_data_handle_flag_s {
 #endif /* DISABLE_FEATURE_DATA_FROM_GPS_HRM_PLUGIN */
 };
 
-struct bm_req_feature_data_handle_flag_s *bm_req_flag_h;
+void bm_engine_set_req_flag_handle(bm_plugin_id_e req_plugin_id, bool value);
 
 int bm_engine_get_usage_by_app_id_for_resource_id(const gchar *app_id, gint resource_id, gint duration, int *b_usage);
 
index 9c47084..b58928c 100644 (file)
@@ -43,7 +43,7 @@ void bm_receive_ble_feature_data(bm_plugin_error_e result, bm_data_h *handle)
        }
 
        /* set flag for skipping next period request */
-       bm_req_flag_h->req_ble_data = false;
+       bm_engine_set_req_flag_handle(BM_PLUGIN_ID_BLE, false);
 
        bm_set_free_ble_data_handle(bt_data_h);
 
@@ -74,7 +74,7 @@ void bm_receive_wifi_feature_data(bm_plugin_error_e result, bm_data_h *handle)
        }
 
        /* set flag for skipping next period request */
-       bm_req_flag_h->req_wifi_data = false;
+       bm_engine_set_req_flag_handle(BM_PLUGIN_ID_WIFI, false);
 
        bm_set_free_wifi_data_handle(wifi_data_h);
 
@@ -105,7 +105,7 @@ void bm_receive_cpu_feature_data(bm_plugin_error_e result, bm_data_h *handle)
        }
 
        /* set flag for skipping next period request */
-       bm_req_flag_h->req_cpu_data = false;
+       bm_engine_set_req_flag_handle(BM_PLUGIN_ID_CPU, false);
 
        bm_set_free_cpu_data_handle(cpu_data_h);
 
@@ -136,7 +136,7 @@ void bm_receive_display_feature_data(bm_plugin_error_e result, bm_data_h *handle
        }
 
        /* set flag for skipping next period request */
-       bm_req_flag_h->req_dp_data = false;
+       bm_engine_set_req_flag_handle(BM_PLUGIN_ID_DISPLAY, false);
 
        bm_set_free_display_data_handle(display_data_h);
 
@@ -167,7 +167,7 @@ void bm_receive_device_network_feature_data(bm_plugin_error_e result, bm_data_h
        }
 
        /* set flag for skipping next period request */
-       bm_req_flag_h->req_dn_data = false;
+       bm_engine_set_req_flag_handle(BM_PLUGIN_ID_DEVICE_NETWORK, false);
 
        bm_set_free_device_network_data_handle(device_network_data_h);
 
@@ -199,7 +199,7 @@ void bm_receive_gps_sensor_feature_data(bm_plugin_error_e result, bm_data_h *han
        }
 
        /* set flag for skipping next period request */
-       bm_req_flag_h->req_gps_data = false;
+       bm_engine_set_req_flag_handle(BM_PLUGIN_ID_GPS_SENSOR, false);
 
        bm_set_free_gps_sensor_data_handle(gps_data_h);
 
@@ -230,7 +230,7 @@ void bm_receive_hrm_sensor_feature_data(bm_plugin_error_e result, bm_data_h *han
        }
 
        /* set flag for skipping next period request */
-       bm_req_flag_h->req_hrm_data = false;
+       bm_engine_set_req_flag_handle(BM_PLUGIN_ID_HRM_SENSOR, false);
 
        bm_set_free_hrm_sensor_data_handle(hrm_sensor_data_h);
 
index e5fc093..e047f2b 100644 (file)
@@ -25,6 +25,16 @@ bm_plugin_info_h *plugins[BATTERY_MONITOR_PLUGINS_MAX];
 
 extern const bm_callbacks_st *bm_receiver_callbacks[BATTERY_MONITOR_CALLBACKS_MAX];
 
+const bm_callbacks_st ble_cb;
+const bm_callbacks_st wifi_cb;
+const bm_callbacks_st cpu_cb;
+const bm_callbacks_st display_cb;
+const bm_callbacks_st device_network_cb;
+#ifdef DISABLE_FEATURE_DATA_FROM_GPS_HRM_PLUGIN
+const bm_callbacks_st gps_cb;
+const bm_callbacks_st hrm_cb;
+#endif
+
 void bm_populate_callbacks(void)
 {
        ENTER;
index 3fd8055..1686c80 100644 (file)
@@ -29,6 +29,7 @@
 
 bm_feature_data_h bm_data_handle = NULL;
 GHashTable *gl_hash = NULL;
+static struct bm_req_feature_data_handle_flag_s *bm_req_flag_h = NULL;
 
 int bm_engine_get_usage_by_app_id_for_resource_id(const gchar *app_id, gint resource_id, gint duration, int *b_usage)
 {
@@ -244,6 +245,48 @@ int bm_engine_get_all_resource_usage(const gchar *app_id, gint duration, bm_tota
        return BATTERY_MONITOR_ERROR_NONE;
 }
 
+void bm_engine_set_req_flag_handle(bm_plugin_id_e req_plugin_id, bool value)
+{
+       ENTER;
+
+       if (!bm_req_flag_h) {
+               _ERR("invalid flag handle");
+               return;
+       }
+
+       switch (req_plugin_id) {
+       case BM_PLUGIN_ID_BLE:
+               bm_req_flag_h->req_ble_data = value;
+               break;
+       case BM_PLUGIN_ID_WIFI:
+               bm_req_flag_h->req_wifi_data = value;
+               break;
+       case BM_PLUGIN_ID_CPU:
+               bm_req_flag_h->req_cpu_data = value;
+               break;
+       case BM_PLUGIN_ID_DISPLAY:
+               bm_req_flag_h->req_dp_data = value;
+               break;
+       case BM_PLUGIN_ID_DEVICE_NETWORK:
+               bm_req_flag_h->req_dn_data = value;
+               break;
+#ifdef DISABLE_FEATURE_DATA_FROM_GPS_HRM_PLUGIN
+       case BM_PLUGIN_ID_GPS_SENSOR:
+               bm_req_flag_h->req_gps_data = value;
+               break;
+       case BM_PLUGIN_ID_HRM_SENSOR:
+               bm_req_flag_h->req_hrm_data = value;
+               break;
+#endif /* DISABLE_FEATURE_DATA_FROM_GPS_HRM_PLUGIN */
+       default:
+               _DBG("Invalid plugin ID");
+               break;
+       }
+
+       EXIT;
+       return;
+}
+
 void bm_set_req_flag_handles(bool value)
 {
        ENTER;
@@ -1599,7 +1642,7 @@ int bm_get_data_from_handles(void)
 
        } else {
                _DBG("set ble flag - true");
-               bm_req_flag_h->req_ble_data = true;
+               bm_engine_set_req_flag_handle(BM_PLUGIN_ID_BLE, true);
        }
 
        _DBG("completed ble data request");
@@ -1615,7 +1658,7 @@ int bm_get_data_from_handles(void)
                BM_CHECK_VAL((ret_val == BATTERY_MONITOR_ERROR_NONE), "wifi power calc failure");
        } else {
                _DBG("set wifi flag - true");
-               bm_req_flag_h->req_wifi_data = true;
+               bm_engine_set_req_flag_handle(BM_PLUGIN_ID_WIFI, true);
        }
 
        _DBG("completed wifi data request");
@@ -1631,7 +1674,7 @@ int bm_get_data_from_handles(void)
                BM_CHECK_VAL((ret_val == BATTERY_MONITOR_ERROR_NONE), "cpu power calc failure");
        } else {
                _DBG("set cpu flag - true");
-               bm_req_flag_h->req_cpu_data = true;
+               bm_engine_set_req_flag_handle(BM_PLUGIN_ID_CPU, true);
        }
 
        _DBG("completed cpu data request");
@@ -1647,7 +1690,7 @@ int bm_get_data_from_handles(void)
                BM_CHECK_VAL((ret_val == BATTERY_MONITOR_ERROR_NONE), "display power calc failure");
        } else {
                _DBG("set display flag - true");
-               bm_req_flag_h->req_dp_data = true;
+               bm_engine_set_req_flag_handle(BM_PLUGIN_ID_DISPLAY, true);
        }
 
        _DBG("completed display data request");
@@ -1663,7 +1706,7 @@ int bm_get_data_from_handles(void)
                BM_CHECK_VAL((ret_val == BATTERY_MONITOR_ERROR_NONE), "device-network power calc failure");
        } else {
                _DBG("set device-network flag - true");
-               bm_req_flag_h->req_dn_data = true;
+               bm_engine_set_req_flag_handle(BM_PLUGIN_ID_DEVICE_NETWORK, true);
        }
 
        _DBG("completed device-network data request");
@@ -1680,7 +1723,7 @@ int bm_get_data_from_handles(void)
                BM_CHECK_VAL((ret_val == BATTERY_MONITOR_ERROR_NONE), "gps-sensor power calc failure");
        } else {
                _DBG("set gps-sensor flag - true");
-               bm_req_flag_h->req_gps_data = true;
+               bm_engine_set_req_flag_handle(BM_PLUGIN_ID_GPS_SENSOR, true);
        }
 
        _DBG("completed gps data request");
@@ -1696,7 +1739,7 @@ int bm_get_data_from_handles(void)
                BM_CHECK_VAL((ret_val == BATTERY_MONITOR_ERROR_NONE), "hrm-sensor power calc failure");
        } else {
                _DBG("set hrm-sensor flag - true");
-               bm_req_flag_h->req_hrm_data = true;
+               bm_engine_set_req_flag_handle(BM_PLUGIN_ID_HRM_SENSOR, true);
        }
 #endif /* DISABLE_FEATURE_DATA_FROM_GPS_HRM_PLUGIN */
        _DBG("completed hrm data request");
@@ -1908,7 +1951,6 @@ int initialize_power_engine(void)
 
        g_timeout_add(BATTERY_MONITOR_DELETE_DB_JOB_PERIOD, bm_delete_data_from_db, NULL);
 
-       /* Call DB cleanup */
        ret_val = bm_clean_db_table_for_job_id();
        if (ret_val != BATTERY_MONITOR_ERROR_NONE)
                _ERR("error cleaning database");