diff options
| author | 2015-08-11 16:51:21 -0700 | |
|---|---|---|
| committer | 2015-08-12 20:14:43 -0700 | |
| commit | cd217b8ace608112b47b20a61866f65b2ac13ce6 (patch) | |
| tree | bfba2d381fedade78bd8cea66fe006fb9718731a | |
| parent | d38e7c9387425c4c661f8ba4f4daad4f444ada4b (diff) | |
Fix unintentional NPE in SpannableStringBuilder.
Previously, when getSpans() was called with a null parameter, an
unintentional NullPointerException would be thrown.
Now, we explicitly return an empty array of Objects.
Bug: 19805521
Change-Id: I52f3ae08c2bcf62f6a4d0c01f0fe08ad1134abb8
| -rw-r--r-- | core/java/android/text/SpannableStringBuilder.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/core/java/android/text/SpannableStringBuilder.java b/core/java/android/text/SpannableStringBuilder.java index 992dc4dcf6dd..40315add603d 100644 --- a/core/java/android/text/SpannableStringBuilder.java +++ b/core/java/android/text/SpannableStringBuilder.java @@ -16,6 +16,7 @@ package android.text; +import android.annotation.Nullable; import android.graphics.Canvas; import android.graphics.Paint; import android.util.Log; @@ -814,8 +815,9 @@ public class SpannableStringBuilder implements CharSequence, GetChars, Spannable * a list of all the spans regardless of type. */ @SuppressWarnings("unchecked") - public <T> T[] getSpans(int queryStart, int queryEnd, Class<T> kind) { - if (kind == null || mSpanCount == 0) return ArrayUtils.emptyArray(kind); + public <T> T[] getSpans(int queryStart, int queryEnd, @Nullable Class<T> kind) { + if (kind == null) return (T[]) ArrayUtils.emptyArray(Object.class); + if (mSpanCount == 0) return ArrayUtils.emptyArray(kind); int count = countSpans(queryStart, queryEnd, kind, treeRoot()); if (count == 0) { return ArrayUtils.emptyArray(kind); |