summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Amith Yamasani <yamasani@google.com> 2011-11-21 16:08:34 -0800
committer Amith Yamasani <yamasani@google.com> 2011-11-21 16:08:34 -0800
commit45f06460e9aeadadad27e6c87817940cd96128ef (patch)
tree0599a993609e925498757dae68eef8763ff5bd87
parent85c7394836843b2cbfa2b51504448794a6071b3a (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.java2
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;
}