diff options
| author | Gilles Debunne <debunne@google.com> | 2012-01-23 16:36:33 -0800 |
|---|---|---|
| committer | Gilles Debunne <debunne@google.com> | 2012-01-23 16:36:35 -0800 |
| commit | ba3634f35523224d9b4238dbd0b9b5e0cf3b0b9b (patch) | |
| tree | 2783b8fa55ed52cc9a098efb11ee98a7a15add8f /core/java/android/text/MeasuredText.java | |
| parent | a6b8fe1c7115e0d3843cf6915f9a6f7598779530 (diff) | |
Fix for AOOB in MeasuredText
Bug 5707593
Change-Id: I3c21343b2938119d7ae9d7892733dc83a209c991
Diffstat (limited to 'core/java/android/text/MeasuredText.java')
| -rw-r--r-- | core/java/android/text/MeasuredText.java | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/core/java/android/text/MeasuredText.java b/core/java/android/text/MeasuredText.java index c184c1164c45..a52e2bae9e2a 100644 --- a/core/java/android/text/MeasuredText.java +++ b/core/java/android/text/MeasuredText.java @@ -109,6 +109,9 @@ class MeasuredText { for (int i = 0; i < spans.length; i++) { int startInPara = spanned.getSpanStart(spans[i]) - start; int endInPara = spanned.getSpanEnd(spans[i]) - start; + // The span interval may be larger and must be restricted to [start, end[ + if (startInPara < 0) startInPara = 0; + if (endInPara > len) endInPara = len; for (int j = startInPara; j < endInPara; j++) { mChars[j] = '\uFFFC'; } |
