diff options
| author | Siyamed Sinir <siyamed@google.com> | 2016-06-08 00:46:27 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-06-08 00:46:28 +0000 |
| commit | 96c3e5504bc68147177a04e88aa64042a44d89f7 (patch) | |
| tree | e0021992b5f32bfb5877cb0e3457a1a401180f83 /core/java | |
| parent | c82a2b5358936098a91cd95f9d9638607f9d7dfc (diff) | |
| parent | eb4df8a82281ee9b2490eebc3c2eef8d669deb87 (diff) | |
Merge "Fix int overflow in SpannableStringBuilder.replace" into nyc-dev
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/text/SpannableStringBuilder.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/core/java/android/text/SpannableStringBuilder.java b/core/java/android/text/SpannableStringBuilder.java index 787202eded02..dc8e4b93e093 100644 --- a/core/java/android/text/SpannableStringBuilder.java +++ b/core/java/android/text/SpannableStringBuilder.java @@ -19,7 +19,6 @@ package android.text; import android.annotation.Nullable; import android.graphics.Canvas; import android.graphics.Paint; -import android.text.style.ParagraphStyle; import android.util.Log; import com.android.internal.util.ArrayUtils; @@ -554,7 +553,8 @@ public class SpannableStringBuilder implements CharSequence, GetChars, Spannable if (adjustSelection) { boolean changed = false; if (selectionStart > start && selectionStart < end) { - final int offset = (selectionStart - start) * newLen / origLen; + final long diff = selectionStart - start; + final int offset = Math.toIntExact(diff * newLen / origLen); selectionStart = start + offset; changed = true; @@ -562,7 +562,8 @@ public class SpannableStringBuilder implements CharSequence, GetChars, Spannable Spanned.SPAN_POINT_POINT); } if (selectionEnd > start && selectionEnd < end) { - final int offset = (selectionEnd - start) * newLen / origLen; + final long diff = selectionEnd - start; + final int offset = Math.toIntExact(diff * newLen / origLen); selectionEnd = start + offset; changed = true; |
