diff options
| -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 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; |