Toast: Fix MotionEvent has too many PointerCoords
If the MotionEvent has too many PointerCoords,
it will lead to an infinite loop and cannot complete the operator<<.
Bug:244248855
Test: printed MotionEvent in log to see the formatting
Signed-off-by: hupeng3 <hp121520@gmail.com>
Change-Id: Id4a01152bc4103976d3f60e69eb375e3d32669a0
diff --git a/libs/input/Input.cpp b/libs/input/Input.cpp
index 13ca9ec..4127f7c 100644
--- a/libs/input/Input.cpp
+++ b/libs/input/Input.cpp
@@ -929,6 +929,8 @@
out << ", actionButton=" << std::to_string(event.getActionButton());
}
const size_t pointerCount = event.getPointerCount();
+ LOG_ALWAYS_FATAL_IF(pointerCount > MAX_POINTERS, "Too many pointers : pointerCount = %zu",
+ pointerCount);
for (size_t i = 0; i < pointerCount; i++) {
out << ", id[" << i << "]=" << event.getPointerId(i);
float x = event.getX(i);