summaryrefslogtreecommitdiffstats
path: root/core/java/com
diff options
context:
space:
mode:
authorAmith Yamasani <yamasani@google.com>2010-04-02 17:24:49 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-04-02 17:24:49 -0700
commitc2e060cbedaa2371fcc5c909c216c8ceafa4f649 (patch)
tree7bde3f11216d96c8e59005386b81037bf7d4c169 /core/java/com
parent6f8b89bb6641dfc34fa36dec52d25115b35b37ec (diff)
parent0913ce95c29371cb7b58e294a8d60262bc7f4329 (diff)
downloadframeworks_base-c2e060cbedaa2371fcc5c909c216c8ceafa4f649.zip
frameworks_base-c2e060cbedaa2371fcc5c909c216c8ceafa4f649.tar.gz
frameworks_base-c2e060cbedaa2371fcc5c909c216c8ceafa4f649.tar.bz2
am 0913ce95: Merge "Potential fix for bug: 2564824 : Device runtime restart in BatteryService" into froyo
Merge commit '0913ce95c29371cb7b58e294a8d60262bc7f4329' into froyo-plus-aosp * commit '0913ce95c29371cb7b58e294a8d60262bc7f4329': Potential fix for bug: 2564824 : Device runtime restart in BatteryService
Diffstat (limited to 'core/java/com')
-rw-r--r--core/java/com/android/internal/os/BatteryStatsImpl.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index 24275ec..833c01b 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -895,9 +895,15 @@ public final class BatteryStatsImpl extends BatteryStats {
String[] nameStringArray = mProcWakelocksName;
long[] wlData = mProcWakelocksData;
+ // Stomp out any bad characters since this is from a circular buffer
+ // A corruption is seen sometimes that results in the vm crashing
+ // This should prevent crashes and the line will probably fail to parse
+ for (int j = startIndex; j < endIndex; j++) {
+ if ((wlBuffer[j] & 0x80) != 0) wlBuffer[j] = (byte) '?';
+ }
boolean parsed = Process.parseProcLine(wlBuffer, startIndex, endIndex,
PROC_WAKELOCKS_FORMAT, nameStringArray, wlData, null);
-
+
name = nameStringArray[0];
count = (int) wlData[1];
// convert nanoseconds to microseconds with rounding.