diff options
| author | 2019-10-16 14:48:30 -0700 | |
|---|---|---|
| committer | 2019-10-16 22:12:04 +0000 | |
| commit | b730f1984f382f53bdafadad59e6070d5d0d99ba (patch) | |
| tree | a42da7f70159f219b4d545be007e0980ae7675e6 | |
| parent | 4ce901e4058d93336dca3413dc53b81bbdf9d3e8 (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.java | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/core/java/android/text/TextLine.java b/core/java/android/text/TextLine.java index d5b115a699b0..0e4f1e56f036 100644 --- a/core/java/android/text/TextLine.java +++ b/core/java/android/text/TextLine.java @@ -230,6 +230,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; @@ -305,6 +308,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; @@ -392,6 +398,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; |