From 0a57fe099a55ab3a7583b229fa7cfb905d6106f3 Mon Sep 17 00:00:00 2001 From: Seigo Nonaka Date: Fri, 6 Sep 2019 16:34:07 -0700 Subject: don't compute outside of visible range Bug: 140632678 Test: manually done Test: TreeHugger Change-Id: I646851973b3816bf9ba32dfe26748c0345a5a081 --- core/java/android/text/TextLine.java | 3 +++ 1 file changed, 3 insertions(+) (limited to 'core/java/android') diff --git a/core/java/android/text/TextLine.java b/core/java/android/text/TextLine.java index 86651060a394..5a2d8f4329dc 100644 --- a/core/java/android/text/TextLine.java +++ b/core/java/android/text/TextLine.java @@ -276,6 +276,7 @@ public class TextLine { final int runCount = mDirections.getRunCount(); for (int runIndex = 0; runIndex < runCount; runIndex++) { final int runStart = mDirections.getRunStart(runIndex); + if (runStart >= mLen) break; final int runLimit = Math.min(runStart + mDirections.getRunLength(runIndex), mLen); final boolean runIsRtl = mDirections.isRunRtl(runIndex); @@ -360,6 +361,7 @@ public class TextLine { float h = 0; for (int runIndex = 0; runIndex < mDirections.getRunCount(); runIndex++) { final int runStart = mDirections.getRunStart(runIndex); + if (runStart >= mLen) break; final int runLimit = Math.min(runStart + mDirections.getRunLength(runIndex), mLen); final boolean runIsRtl = mDirections.isRunRtl(runIndex); @@ -417,6 +419,7 @@ public class TextLine { float h = 0; for (int runIndex = 0; runIndex < mDirections.getRunCount(); runIndex++) { final int runStart = mDirections.getRunStart(runIndex); + if (runStart > mLen) break; final int runLimit = Math.min(runStart + mDirections.getRunLength(runIndex), mLen); final boolean runIsRtl = mDirections.isRunRtl(runIndex); -- cgit v1.2.3