From f2ddfb15288b71b0ddaf23df5128ed6525c71cb9 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Tue, 13 Oct 2009 22:43:33 -0700 Subject: [PATCH] Another fix for #2186897: Cannot unlock the device by swiping This was probably a side-effect of the divide by zero exception, but we'll be safe anyway. Change-Id: I875200febb9b3090d12f170066b2bea74c9f77f8 --- services/java/com/android/server/KeyInputQueue.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/services/java/com/android/server/KeyInputQueue.java b/services/java/com/android/server/KeyInputQueue.java index 09591f44e5e34..5d65c714e77c4 100644 --- a/services/java/com/android/server/KeyInputQueue.java +++ b/services/java/com/android/server/KeyInputQueue.java @@ -721,11 +721,14 @@ public abstract class KeyInputQueue { // virtual key area... but still // propagate this to the previous // data for comparisons. + int num = ms.mNextNumPointers; + if (num > InputDevice.MAX_POINTERS) { + num = InputDevice.MAX_POINTERS; + } System.arraycopy(ms.mNextData, 0, ms.mLastData, 0, - ms.mNextNumPointers - * MotionEvent.NUM_SAMPLE_DATA); - ms.mLastNumPointers = ms.mNextNumPointers; + num * MotionEvent.NUM_SAMPLE_DATA); + ms.mLastNumPointers = num; } ms.finish();