From fc121c2430cd27c0d9b655105a9ab1c261c10bdc Mon Sep 17 00:00:00 2001 From: Chris Craik Date: Fri, 10 Jul 2015 13:12:34 -0700 Subject: [PATCH] Reduce cost of span type checking bug:22378829 Change-Id: I1da5154b2fb4f5032eaed44586d5470d28ceb45b --- core/java/android/text/SpannableStringInternal.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/core/java/android/text/SpannableStringInternal.java b/core/java/android/text/SpannableStringInternal.java index d114d3241b4d5..5c5deb45c3912 100644 --- a/core/java/android/text/SpannableStringInternal.java +++ b/core/java/android/text/SpannableStringInternal.java @@ -214,10 +214,6 @@ import java.lang.reflect.Array; Object ret1 = null; for (int i = 0; i < spanCount; i++) { - if (kind != null && !kind.isInstance(spans[i])) { - continue; - } - int spanStart = data[i * COLUMNS + START]; int spanEnd = data[i * COLUMNS + END]; @@ -237,6 +233,11 @@ import java.lang.reflect.Array; } } + // verify span class as late as possible, since it is expensive + if (kind != null && !kind.isInstance(spans[i])) { + continue; + } + if (count == 0) { ret1 = spans[i]; count++;