summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2021-06-26 02:22:57 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2021-06-26 02:22:57 +0000
commitbb487c32335388c27b227f60adee67f2fc0a264e (patch)
treeb3b780b6b93e42633743803c643e9097d5fa2588 /core/java
parent67fcd269564d971ab222559c960b8a3e99a7a3ad (diff)
parent0c17ccc4af2b28823a12cf846e9222c3c8b472de (diff)
Merge "Improve ellipsize performance" into pi-dev
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/text/Layout.java9
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;
}
}