diff --git a/core/java/android/text/SpannableStringInternal.java b/core/java/android/text/SpannableStringInternal.java index 47e71be333d8c..4b02df86c82e5 100644 --- a/core/java/android/text/SpannableStringInternal.java +++ b/core/java/android/text/SpannableStringInternal.java @@ -33,6 +33,7 @@ import java.lang.reflect.Array; 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 @@ import java.lang.reflect.Array; 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];