summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Seigo Nonaka <nona@google.com> 2019-10-16 14:48:30 -0700
committer Seigo Nonaka <nona@google.com> 2019-10-16 22:11:01 +0000
commit7b05578d9c87eee4ce5af64d9aee94e709f809cd (patch)
treece4f9f6b6e2c65e319fc81185851b7d0ed650280
parentaf62f3a7b397b1c299632cecaba52fd476363282 (diff)
RESTRICT AUTOMERGE
Revive runLimit check logic The runLimit check logic was accidentally removed by I7089ed9b711dddd7de2b27c9c2fa0fb4cb53a735 Bug: 142134328 Bug: 140632678 Test: Manually done with reported step Test: StaticLayoutTest passes Change-Id: Ib1d5efdcb9adcc18a6a43370dc016ea464f48148
-rw-r--r--core/java/android/text/TextLine.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/core/java/android/text/TextLine.java b/core/java/android/text/TextLine.java
index 3e9dc48d2e5a..a6425efb7222 100644
--- a/core/java/android/text/TextLine.java
+++ b/core/java/android/text/TextLine.java
@@ -239,6 +239,9 @@ class TextLine {
for (int i = 0; i < runs.length; i += 2) {
int runStart = runs[i];
int runLimit = runStart + (runs[i+1] & Layout.RUN_LENGTH_MASK);
+ if (runLimit > mLen) {
+ runLimit = mLen;
+ }
if (runStart > mLen) break;
boolean runIsRtl = (runs[i+1] & Layout.RUN_RTL_FLAG) != 0;
@@ -314,6 +317,9 @@ class TextLine {
for (int i = 0; i < runs.length; i += 2) {
int runStart = runs[i];
int runLimit = runStart + (runs[i+1] & Layout.RUN_LENGTH_MASK);
+ if (runLimit > mLen) {
+ runLimit = mLen;
+ }
if (runStart > mLen) break;
boolean runIsRtl = (runs[i+1] & Layout.RUN_RTL_FLAG) != 0;
@@ -401,6 +407,9 @@ class TextLine {
for (int i = 0; i < runs.length; i += 2) {
int runStart = runs[i];
int runLimit = runStart + (runs[i + 1] & Layout.RUN_LENGTH_MASK);
+ if (runLimit > mLen) {
+ runLimit = mLen;
+ }
if (runStart > mLen) break;
boolean runIsRtl = (runs[i + 1] & Layout.RUN_RTL_FLAG) != 0;