summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2021-06-26 02:52:03 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2021-06-26 02:52:03 +0000
commit9ca29d2c47e192d25ddb669b3b431661d5c11058 (patch)
tree969ba1f72c0c79c535e31a2e107d89a324b91312
parent4042304ccb39d2303b206ec21dba31baa65ac811 (diff)
parentb3b499045390cbd2d944c327c429120849a5404d (diff)
Merge "Improve ellipsize performance" into rvc-dev am: b3b4990453
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14905055 Change-Id: Ib9c5c9b376ea08177c855a10a5a3d5c1112c0ba8
-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 8a4497a0f0ce..6baea1aea471 100644
--- a/core/java/android/text/Layout.java
+++ b/core/java/android/text/Layout.java
@@ -2350,7 +2350,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);
@@ -2359,9 +2362,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;
}
}