diff options
author | Shumao Hou <shumao1129@gmail.com> | 2022-11-09 12:43:14 +0800 |
---|---|---|
committer | alk3pInjection <webmaster@raspii.tech> | 2023-09-17 12:54:04 +0800 |
commit | 00a548d4470b5efb7b7752313642a2da7a8348da (patch) | |
tree | 7782857303c48570aa71969696d551090341af0a | |
parent | 1b9bc2d19e98592205ec437c98e89d1cfe0d5a2c (diff) |
BatteryStatsImpl: Avoid dividing by 0.0 in updateWifiState.
If the variable opVolt is 0.0 in the method updateWifiState,
the local variable monitoredRailChargeConsumedMaMs may be computed
to a large value. The logic here should be the same as the method
noteModemControlllerActivity. The variable opVolt being 0.0 should
be avoided as a divisor.
Bug: N/A
Test: Manual
Change-Id: I95ce75b960bace4c37acea89062cb21aab21aa30
-rw-r--r-- | core/java/com/android/internal/os/BatteryStatsImpl.java | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index 08e36db5d92e..af54f6b3e0e4 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -13659,17 +13659,17 @@ public class BatteryStatsImpl extends BatteryStats { // We store the power drain as mAms. controllerMaMs = info.getControllerEnergyUsedMicroJoules() / opVolt; mWifiActivity.getPowerCounter().addCountLocked((long) controllerMaMs); + // Converting uWs to mAms. + // Conversion: (uWs * (1000ms / 1s) * (1mW / 1000uW)) / mV = mAms + long monitoredRailChargeConsumedMaMs = + (long) (mTmpRailStats.getWifiTotalEnergyUseduWs() / opVolt); + mWifiActivity.getMonitoredRailChargeConsumedMaMs().addCountLocked( + monitoredRailChargeConsumedMaMs); + mHistoryCur.wifiRailChargeMah += + (monitoredRailChargeConsumedMaMs / MILLISECONDS_IN_HOUR); + addHistoryRecordLocked(elapsedRealtimeMs, uptimeMs); + mTmpRailStats.resetWifiTotalEnergyUsed(); } - // Converting uWs to mAms. - // Conversion: (uWs * (1000ms / 1s) * (1mW / 1000uW)) / mV = mAms - long monitoredRailChargeConsumedMaMs = - (long) (mTmpRailStats.getWifiTotalEnergyUseduWs() / opVolt); - mWifiActivity.getMonitoredRailChargeConsumedMaMs().addCountLocked( - monitoredRailChargeConsumedMaMs); - mHistoryCur.wifiRailChargeMah += - (monitoredRailChargeConsumedMaMs / MILLISECONDS_IN_HOUR); - addHistoryRecordLocked(elapsedRealtimeMs, uptimeMs); - mTmpRailStats.resetWifiTotalEnergyUsed(); if (uidEstimatedConsumptionMah != null) { totalEstimatedConsumptionMah = Math.max(controllerMaMs / MILLISECONDS_IN_HOUR, |