diff options
| author | 2011-11-21 16:08:34 -0800 | |
|---|---|---|
| committer | 2011-11-21 16:08:34 -0800 | |
| commit | 45f06460e9aeadadad27e6c87817940cd96128ef (patch) | |
| tree | 0599a993609e925498757dae68eef8763ff5bd87 | |
| parent | 85c7394836843b2cbfa2b51504448794a6071b3a (diff) | |
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
| -rw-r--r-- | core/java/com/android/internal/os/BatteryStatsImpl.java | 2 |
1 files changed, 1 insertions, 1 deletions
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; } |