summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dmitri Plotnikov <dplotnikov@google.com> 2025-01-02 17:07:47 -0800
committer Dmitri Plotnikov <dplotnikov@google.com> 2025-01-02 18:39:27 -0800
commitb4cfeb60ddaff26cd214d0f8331737b510674f57 (patch)
treebe4e2e195fcbef2d90fff75f66fc8f664de00619
parent0fd6b40df2e42acd9f90939eb934b8d016b8014d (diff)
Prevent zero-division when number of TX or RX packets is 0.
Bug: 386606184 Flag: EXEMPT bugfix Test: atest PowerStatsTests Change-Id: I6ca7b9308d85f6256aeb5f554de5be32570cdb28
-rw-r--r--services/core/java/com/android/server/power/stats/BatteryStatsImpl.java24
1 files changed, 14 insertions, 10 deletions
diff --git a/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java b/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java
index 24d857b0fc1f..caaf5a2b16d0 100644
--- a/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java
+++ b/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java
@@ -12746,20 +12746,24 @@ public class BatteryStatsImpl extends BatteryStats {
// Distribute the remaining Tx power appropriately between all apps that transmitted
// packets.
- for (int i = 0; i < txPackets.size(); i++) {
- final int uid = txPackets.keyAt(i);
- final long myTxTimeMs = (txPackets.valueAt(i) * leftOverTxTimeMs)
- / totalTxPackets;
- txTimesMs.incrementValue(uid, myTxTimeMs);
+ if (totalTxPackets != 0 && leftOverTxTimeMs != 0) {
+ for (int i = 0; i < txPackets.size(); i++) {
+ final int uid = txPackets.keyAt(i);
+ final long myTxTimeMs = (txPackets.valueAt(i) * leftOverTxTimeMs)
+ / totalTxPackets;
+ txTimesMs.incrementValue(uid, myTxTimeMs);
+ }
}
// Distribute the remaining Rx power appropriately between all apps that received
// packets.
- for (int i = 0; i < rxPackets.size(); i++) {
- final int uid = rxPackets.keyAt(i);
- final long myRxTimeMs = (rxPackets.valueAt(i) * leftOverRxTimeMs)
- / totalRxPackets;
- rxTimesMs.incrementValue(uid, myRxTimeMs);
+ if (totalRxPackets != 0 && leftOverRxTimeMs != 0) {
+ for (int i = 0; i < rxPackets.size(); i++) {
+ final int uid = rxPackets.keyAt(i);
+ final long myRxTimeMs = (rxPackets.valueAt(i) * leftOverRxTimeMs)
+ / totalRxPackets;
+ rxTimesMs.incrementValue(uid, myRxTimeMs);
+ }
}
for (int i = 0; i < txTimesMs.size(); i++) {