Fix: Case of improper handle in fail case 82/223482/1 tizen_5.5_tv accepted/tizen/5.5/unified/20200131.115212 submit/tizen_5.5/20200130.070347
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 06:55:45 +0000 (06:55 +0000)
Change-Id: Icd4ab121ae8bfcb1e0debda044e5d52d8f0ab625
Signed-off-by: Dewal Agarwal <d1.agarwal@samsung.com>
src/bm_power_engine.c

index 1686c80..944eb65 100644 (file)
@@ -1626,7 +1626,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");
 
@@ -1803,20 +1803,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);
@@ -1824,9 +1824,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);
@@ -1834,9 +1835,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);
@@ -1844,9 +1846,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);
@@ -1854,9 +1857,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);
@@ -1865,9 +1869,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);
@@ -1875,9 +1880,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);