diff options
| -rw-r--r-- | services/core/java/com/android/server/am/BatteryStatsService.java | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java index 400ebfde1741..c27126a01a32 100644 --- a/services/core/java/com/android/server/am/BatteryStatsService.java +++ b/services/core/java/com/android/server/am/BatteryStatsService.java @@ -1251,12 +1251,10 @@ public final class BatteryStatsService extends IBatteryStats.Stub } private static float clampPowerMah(double powerMah, String consumer) { - float resultPowerMah = 0; - if (powerMah <= Float.MAX_VALUE && powerMah >= Float.MIN_VALUE) { - resultPowerMah = (float) powerMah; - } else { - // Handle overflow appropriately - Slog.wtfStack(TAG, consumer + " reported powerMah float overflow: " + powerMah); + float resultPowerMah = Double.valueOf(powerMah).floatValue(); + if (Float.isInfinite(resultPowerMah)) { + resultPowerMah = 0; + Slog.d(TAG, consumer + " reported powerMah float overflow : " + powerMah); } return resultPowerMah; } @@ -1361,11 +1359,10 @@ public final class BatteryStatsService extends IBatteryStats.Stub final String powerComponentName = batteryConsumer.getPowerComponentName(componentId); final double consumedPowerMah = batteryConsumer.getConsumedPower(key); - float powerMah = + final float powerMah = clampPowerMah( - consumedPowerMah, "uidConsumer-" + uid + "-" + powerComponentName); + consumedPowerMah, "uid-" + uid + "-" + powerComponentName); final long powerComponentDurationMillis = batteryConsumer.getUsageDurationMillis(key); - if (powerMah == 0 && powerComponentDurationMillis == 0) { return true; } |