Enforce consistent sizes for arrays in SpannableStringInternal
am: 9cde7244b6
Change-Id: Ie1fa575d83754d39a6bc30ba542411709f7a2c46
diff --git a/core/java/android/text/SpannableStringInternal.java b/core/java/android/text/SpannableStringInternal.java
index 47e71be..4b02df86 100644
--- a/core/java/android/text/SpannableStringInternal.java
+++ b/core/java/android/text/SpannableStringInternal.java
@@ -33,6 +33,7 @@
mText = source.toString().substring(start, end);
mSpans = EmptyArray.OBJECT;
+ // Invariant: mSpanData.length = mSpans.length * COLUMNS
mSpanData = EmptyArray.INT;
if (source instanceof Spanned) {
@@ -99,7 +100,7 @@
Object[] srcSpans = src.mSpans;
mSpanCount = count;
mSpans = ArrayUtils.newUnpaddedObjectArray(mSpanCount);
- mSpanData = new int[mSpanCount * COLUMNS];
+ mSpanData = new int[mSpans.length * COLUMNS];
for (int i = 0, j = 0; i < limit; i++) {
int spanStart = srcData[i * COLUMNS + START];
int spanEnd = srcData[i * COLUMNS + END];