From a57a5404400b8dec5144d275452101e283f772b1 Mon Sep 17 00:00:00 2001 From: Adam Lesinski Date: Mon, 28 Sep 2015 10:21:33 -0700 Subject: [PATCH] Fix asymmetry in parceling/unparceling code for BatteryStats summary Bug:24434303 Change-Id: I638979e54076004860035396738f6a1281e26c20 --- .../android/internal/os/BatteryStatsImpl.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index 8cf2dabdb549e..64b7768c8337b 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -5704,6 +5704,8 @@ public final class BatteryStatsImpl extends BatteryStats { cpuSpeeds[speed] = new LongSamplingCounter(mOnBatteryTimeBase, in); } } + } else { + mCpuClusterSpeed[cluster] = null; } } } else { @@ -9382,13 +9384,14 @@ public final class BatteryStatsImpl extends BatteryStats { u.mCpuClusterSpeed = new LongSamplingCounter[numClusters][]; for (int cluster = 0; cluster < numClusters; cluster++) { - int NSB = in.readInt(); - if (mPowerProfile != null && - mPowerProfile.getNumSpeedStepsInCpuCluster(cluster) != NSB) { - throw new ParcelFormatException("File corrupt: too many speed bins " + NSB); - } - if (in.readInt() != 0) { + final int NSB = in.readInt(); + if (mPowerProfile != null && + mPowerProfile.getNumSpeedStepsInCpuCluster(cluster) != NSB) { + throw new ParcelFormatException("File corrupt: too many speed bins " + + NSB); + } + u.mCpuClusterSpeed[cluster] = new LongSamplingCounter[NSB]; for (int speed = 0; speed < NSB; speed++) { if (in.readInt() != 0) { @@ -9397,6 +9400,8 @@ public final class BatteryStatsImpl extends BatteryStats { u.mCpuClusterSpeed[cluster][speed].readSummaryFromParcelLocked(in); } } + } else { + u.mCpuClusterSpeed[cluster] = null; } } } else {