Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd217b8a authored by Roozbeh Pournader's avatar Roozbeh Pournader
Browse files

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
parent d38e7c93
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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);