diff --git a/core/java/com/android/internal/widget/PointerLocationView.java b/core/java/com/android/internal/widget/PointerLocationView.java index 592576bb41d06..e53162cc97fd8 100644 --- a/core/java/com/android/internal/widget/PointerLocationView.java +++ b/core/java/com/android/internal/widget/PointerLocationView.java @@ -25,6 +25,7 @@ import android.hardware.input.InputManager; import android.hardware.input.InputManager.InputDeviceListener; import android.os.SystemProperties; import android.util.Log; +import android.util.Slog; import android.view.InputDevice; import android.view.KeyEvent; import android.view.MotionEvent; @@ -630,6 +631,12 @@ public class PointerLocationView extends View implements InputDeviceListener, >> MotionEvent.ACTION_POINTER_INDEX_SHIFT; // will be 0 for UP final int id = event.getPointerId(index); + if (id >= NP) { + Slog.wtf(TAG, "Got pointer ID out of bounds: id=" + id + " arraysize=" + + NP + " pointerindex=" + index + + " action=0x" + Integer.toHexString(action)); + return; + } final PointerState ps = mPointers.get(id); ps.mCurDown = false;