diff --git a/core/java/com/android/internal/os/KernelWakelockReader.java b/core/java/com/android/internal/os/KernelWakelockReader.java index e09e0e609380e..cffb0ad9fdb99 100644 --- a/core/java/com/android/internal/os/KernelWakelockReader.java +++ b/core/java/com/android/internal/os/KernelWakelockReader.java @@ -29,6 +29,7 @@ import com.android.internal.annotations.VisibleForTesting; import java.io.File; import java.io.FileInputStream; +import java.util.Arrays; import java.util.Iterator; /** @@ -66,6 +67,7 @@ public class KernelWakelockReader { private final String[] mProcWakelocksName = new String[3]; private final long[] mProcWakelocksData = new long[3]; private ISuspendControlService mSuspendControlService = null; + private byte[] mKernelWakelockBuffer = new byte[32 * 1024]; /** * Reads kernel wakelock stats and updates the staleStats with the new information. @@ -84,7 +86,7 @@ public class KernelWakelockReader { } return removeOldStats(staleStats); } else { - byte[] buffer = new byte[32*1024]; + Arrays.fill(mKernelWakelockBuffer, (byte) 0); int len = 0; boolean wakeup_sources; final long startTime = SystemClock.uptimeMillis(); @@ -107,7 +109,8 @@ public class KernelWakelockReader { } int cnt; - while ((cnt = is.read(buffer, len, buffer.length - len)) > 0) { + while ((cnt = is.read(mKernelWakelockBuffer, len, + mKernelWakelockBuffer.length - len)) > 0) { len += cnt; } @@ -125,12 +128,13 @@ public class KernelWakelockReader { } if (len > 0) { - if (len >= buffer.length) { - Slog.wtf(TAG, "Kernel wake locks exceeded buffer size " + buffer.length); + if (len >= mKernelWakelockBuffer.length) { + Slog.wtf(TAG, "Kernel wake locks exceeded mKernelWakelockBuffer size " + + mKernelWakelockBuffer.length); } int i; for (i=0; i