Fix: Case of improper handle in fail case 16/223216/3 accepted/tizen/unified/20200203.125806 submit/tizen/20200131.044212
authorDewal Agarwal <d1.agarwal@samsung.com>
Mon, 27 Jan 2020 12:51:46 +0000 (18:21 +0530)
committerDewal Agarwal <d1.agarwal@samsung.com>
Thu, 30 Jan 2020 12:42:32 +0000 (12:42 +0000)
Change-Id: Icd4ab121ae8bfcb1e0debda044e5d52d8f0ab625
Signed-off-by: Dewal Agarwal <d1.agarwal@samsung.com>
src/bm_power_engine.c

index fa52139..6768043 100644 (file)
@@ -1497,7 +1497,7 @@ int bm_get_data_from_handles(void)
        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, NULL);
        if (!gl_hash)
                _ERR("Global Hash creation failed");
 
@@ -1674,20 +1674,20 @@ int bm_start_getting_feature_data(void)
        for (id = BM_PLUGIN_ID_BLE; id <= BM_PLUGIN_ID_DEVICE_NETWORK; ++id) {
 #endif
                bm_get_feature_plugin_handle(&bm_plugin, id);
-
+               handle = NULL;
                if (!bm_plugin || !bm_plugin->api) {
                        _WARN("Plugin with ID: %s is NULL", bm_get_plugin_name(id));
                        continue;
                }
-
                _INFO(" requesting data from plugin - %s", bm_get_plugin_name(id));
 
                switch (id) {
                case BM_PLUGIN_ID_BLE: /* BLE Data */
                        ret_val = bm_plugin->api->get_feature_data(&handle, id);
-
-                       BM_CHECK_VAL((ret_val == BATTERY_MONITOR_ERROR_NONE), "'ble' data not available");
-
+                       if (ret_val != BATTERY_MONITOR_ERROR_NONE) {
+                               _DBG("ble data not available : improper value");
+                               handle = NULL;
+                       }
                        if (handle != NULL) {
                                _DBG("received ble data handle");
                                bm_data_handle->bm_ble_handle = (bm_bluetooth_st *)(handle);
@@ -1695,9 +1695,10 @@ int bm_start_getting_feature_data(void)
                        break;
                case BM_PLUGIN_ID_WIFI: /* WI-FI Data */
                        ret_val = bm_plugin->api->get_feature_data(&handle, id);
-
-                       BM_CHECK_VAL((ret_val == BATTERY_MONITOR_ERROR_NONE), "'wifi' data not available");
-
+                       if (ret_val != BATTERY_MONITOR_ERROR_NONE) {
+                               _DBG("wifi data not available : improper value");
+                               handle = NULL;
+                       }
                        if (handle != NULL) {
                                _DBG("received wifi data handle");
                                bm_data_handle->bm_wifi_handle = (bm_wifi_st *)(handle);
@@ -1705,9 +1706,10 @@ int bm_start_getting_feature_data(void)
                        break;
                case BM_PLUGIN_ID_CPU: /* CPU Data */
                        ret_val = bm_plugin->api->get_feature_data(&handle, id);
-
-                       BM_CHECK_VAL((ret_val == BATTERY_MONITOR_ERROR_NONE), "'cpu' data not available");
-
+                       if (ret_val != BATTERY_MONITOR_ERROR_NONE) {
+                               _DBG("cpu data not available : improper value");
+                               handle = NULL;
+                       }
                        if (handle != NULL) {
                                _DBG("received cpu data handle");
                                bm_data_handle->bm_cpu_handle = (bm_cpu_st *)(handle);
@@ -1715,9 +1717,10 @@ int bm_start_getting_feature_data(void)
                        break;
                case BM_PLUGIN_ID_DISPLAY: /* DISPLAY Data */
                        ret_val = bm_plugin->api->get_feature_data(&handle, id);
-
-                       BM_CHECK_VAL((ret_val == BATTERY_MONITOR_ERROR_NONE), "'display' data not available");
-
+                       if (ret_val != BATTERY_MONITOR_ERROR_NONE) {
+                               _DBG("display data not available : improper value");
+                               handle = NULL;
+                       }
                        if (handle != NULL) {
                                _DBG("received display data handle");
                                bm_data_handle->bm_display_handle = (bm_display_st *)(handle);
@@ -1725,9 +1728,10 @@ int bm_start_getting_feature_data(void)
                        break;
                case BM_PLUGIN_ID_DEVICE_NETWORK: /* DEVICE-NETWORK Data */
                        ret_val = bm_plugin->api->get_feature_data(&handle, id);
-
-                       BM_CHECK_VAL((ret_val == BATTERY_MONITOR_ERROR_NONE), "'device-network' data not available");
-
+                       if (ret_val != BATTERY_MONITOR_ERROR_NONE) {
+                               _DBG("device-network data not available : improper value");
+                               handle = NULL;
+                       }
                        if (handle != NULL) {
                                _DBG("received device network data handle");
                                bm_data_handle->bm_dn_handle = (bm_device_network_st *)(handle);
@@ -1736,9 +1740,10 @@ int bm_start_getting_feature_data(void)
 #ifdef DISABLE_FEATURE_DATA_FROM_GPS_HRM_PLUGIN
                case BM_PLUGIN_ID_GPS_SENSOR: /* GPS Sensor Data */
                        ret_val = bm_plugin->api->get_feature_data(&handle, id);
-
-                       BM_CHECK_VAL((ret_val == BATTERY_MONITOR_ERROR_NONE), "'gps-sensor' data not available");
-
+                       if (ret_val != BATTERY_MONITOR_ERROR_NONE) {
+                               _DBG("gps data not available : improper value");
+                               handle = NULL;
+                       }
                        if (handle != NULL) {
                                _DBG("received gps data handle");
                                bm_data_handle->bm_gps_handle = (bm_gps_st *)(handle);
@@ -1746,9 +1751,10 @@ int bm_start_getting_feature_data(void)
                        break;
                case BM_PLUGIN_ID_HRM_SENSOR: /* HRM Sensor Data */
                        ret_val = bm_plugin->api->get_feature_data(&handle, id);
-
-                       BM_CHECK_VAL((ret_val == BATTERY_MONITOR_ERROR_NONE), "'hrm-sensor' data not available");
-
+                       if (ret_val != BATTERY_MONITOR_ERROR_NONE) {
+                               _DBG("hrm data not available : improper value");
+                               handle = NULL;
+                       }
                        if (handle != NULL) {
                                _DBG("received hrm data handle");
                                bm_data_handle->bm_hrm_handle = (bm_hrm_sensor_st *)(handle);