diff options
Diffstat (limited to 'core/java/android/text/SpannableStringBuilder.java')
| -rw-r--r-- | core/java/android/text/SpannableStringBuilder.java | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/core/java/android/text/SpannableStringBuilder.java b/core/java/android/text/SpannableStringBuilder.java index e34560b80bda..787202eded02 100644 --- a/core/java/android/text/SpannableStringBuilder.java +++ b/core/java/android/text/SpannableStringBuilder.java @@ -965,10 +965,10 @@ public class SpannableStringBuilder implements CharSequence, GetChars, Spannable (spanStart != queryEnd && spanEnd != queryStart)) && (Object.class == kind || kind.isInstance(mSpans[i]))) { int spanPriority = mSpanFlags[i] & SPAN_PRIORITY; - if(sort) { - ret[count] = (T) mSpans[i]; - priority[count] = spanPriority; - insertionOrder[count] = mSpanOrder[i]; + int target = count; + if (sort) { + priority[target] = spanPriority; + insertionOrder[target] = mSpanOrder[i]; } else if (spanPriority != 0) { //insertion sort for elements with priority int j = 0; @@ -977,8 +977,9 @@ public class SpannableStringBuilder implements CharSequence, GetChars, Spannable if (spanPriority > p) break; } System.arraycopy(ret, j, ret, j + 1, count - j); - ret[j] = (T) mSpans[i]; + target = j; } + ret[target] = (T) mSpans[i]; count++; } if (count < ret.length && (i & 1) != 0) { |
