summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Roozbeh Pournader <roozbeh@google.com> 2015-08-11 16:51:21 -0700
committer Roozbeh Pournader <roozbeh@google.com> 2015-08-12 20:14:43 -0700
commitcd217b8ace608112b47b20a61866f65b2ac13ce6 (patch)
treebfba2d381fedade78bd8cea66fe006fb9718731a
parentd38e7c9387425c4c661f8ba4f4daad4f444ada4b (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.java6
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);