From 45f06460e9aeadadad27e6c87817940cd96128ef Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Mon, 21 Nov 2011 16:08:34 -0800 Subject: Fix an NPE on overflow in BatteryStats history. When the battery stats buffer hits 128KB, it hits a code path that causes an NPE. This can happen depending on usage and charging patterns and manifest in bad ways, such as failure to boot up or random crashes, or refusing to go to sleep. Bug: 5645407 Change-Id: I21d5d189431f776f25bcb7d598c86e598ad8cb17 --- core/java/com/android/internal/os/BatteryStatsImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index 3e96c815e9b6..fec4cbc9d402 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -1275,7 +1275,7 @@ public final class BatteryStatsImpl extends BatteryStats { // record changes to the battery level. if (mHistoryLastWritten.batteryLevel == mHistoryCur.batteryLevel && (dataSize >= MAX_MAX_HISTORY_BUFFER - || ((mHistoryEnd.states^mHistoryCur.states) + || ((mHistoryLastWritten.states^mHistoryCur.states) & HistoryItem.MOST_INTERESTING_STATES) == 0)) { return; } -- cgit v1.2.3-59-g8ed1b