diff options
| author | Amith Yamasani <yamasani@google.com> | 2009-09-30 11:05:30 -0700 |
|---|---|---|
| committer | Amith Yamasani <yamasani@google.com> | 2009-09-30 11:08:31 -0700 |
| commit | 53b707ba26055f3b7597db5826dee64987bfb83a (patch) | |
| tree | bbd6e2da35784c8a37a22d09b3235a87479ec58b /core/java/com | |
| parent | 8eb0f348931c9185ae6a8f49964c904c42b2bb57 (diff) | |
| download | frameworks_base-53b707ba26055f3b7597db5826dee64987bfb83a.zip frameworks_base-53b707ba26055f3b7597db5826dee64987bfb83a.tar.gz frameworks_base-53b707ba26055f3b7597db5826dee64987bfb83a.tar.bz2 | |
Handle bad lines in /proc/wakelocks : Fix for 2124260
Use the return value from the native parser to skip over bad lines. When
the wakelocks overflow, there could be empty or badly formatted lines.
Skip over them.
Diffstat (limited to 'core/java/com')
| -rw-r--r-- | core/java/com/android/internal/os/BatteryStatsImpl.java | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index 35c66ba..7a8a3be 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -867,15 +867,15 @@ public final class BatteryStatsImpl extends BatteryStats { String[] nameStringArray = mProcWakelocksName; long[] wlData = mProcWakelocksData; - Process.parseProcLine(wlBuffer, startIndex, endIndex, PROC_WAKELOCKS_FORMAT, - nameStringArray, wlData, null); + 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. totalTime = (wlData[2] + 500) / 1000; - if (name.length() > 0) { + if (parsed && name.length() > 0) { if (!m.containsKey(name)) { m.put(name, new KernelWakelockStats(count, totalTime, sKernelWakelockUpdateVersion)); @@ -892,7 +892,7 @@ public final class BatteryStatsImpl extends BatteryStats { numUpdatedWlNames++; } } - } + } startIndex = endIndex; } |
