diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2021-06-26 02:22:57 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-06-26 02:22:57 +0000 |
| commit | bb487c32335388c27b227f60adee67f2fc0a264e (patch) | |
| tree | b3b780b6b93e42633743803c643e9097d5fa2588 /core/java/android | |
| parent | 67fcd269564d971ab222559c960b8a3e99a7a3ad (diff) | |
| parent | 0c17ccc4af2b28823a12cf846e9222c3c8b472de (diff) | |
Merge "Improve ellipsize performance" into pi-dev
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/text/Layout.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/core/java/android/text/Layout.java b/core/java/android/text/Layout.java index c02f7ef65a77..3154acccc6d8 100644 --- a/core/java/android/text/Layout.java +++ b/core/java/android/text/Layout.java @@ -2280,7 +2280,10 @@ public abstract class Layout { final int ellipsisStringLen = ellipsisString.length(); // Use the ellipsis string only if there are that at least as many characters to replace. final boolean useEllipsisString = ellipsisCount >= ellipsisStringLen; - for (int i = 0; i < ellipsisCount; i++) { + final int min = Math.max(0, start - ellipsisStart - lineStart); + final int max = Math.min(ellipsisCount, end - ellipsisStart - lineStart); + + for (int i = min; i < max; i++) { final char c; if (useEllipsisString && i < ellipsisStringLen) { c = ellipsisString.charAt(i); @@ -2289,9 +2292,7 @@ public abstract class Layout { } final int a = i + ellipsisStart + lineStart; - if (start <= a && a < end) { - dest[destoff + a - start] = c; - } + dest[destoff + a - start] = c; } } |
