summaryrefslogtreecommitdiff
path: root/core/java/android/text/MeasuredText.java
diff options
context:
space:
mode:
authorGilles Debunne <debunne@google.com>2012-01-23 16:36:33 -0800
committerGilles Debunne <debunne@google.com>2012-01-23 16:36:35 -0800
commitba3634f35523224d9b4238dbd0b9b5e0cf3b0b9b (patch)
tree2783b8fa55ed52cc9a098efb11ee98a7a15add8f /core/java/android/text/MeasuredText.java
parenta6b8fe1c7115e0d3843cf6915f9a6f7598779530 (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.java3
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';
}