summaryrefslogtreecommitdiff
path: root/core/java/android/util/SparseBooleanArray.java
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2019-04-01 21:31:15 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-04-01 21:31:15 +0000
commit8ad3e75bb1ba9b5f8569cc66ab856ce4cbaa1f57 (patch)
treed30db917d4acaec5c4c2a2f11bd43114458922ef /core/java/android/util/SparseBooleanArray.java
parentb288c3ff9e22932fb4b1f4cfda04750e7c032027 (diff)
parent025a1664abaafde21ff0262a3679a3e6aab853e7 (diff)
Merge "Revert "Revert "Checkng upper bound in *Array classes."""
Diffstat (limited to 'core/java/android/util/SparseBooleanArray.java')
-rw-r--r--core/java/android/util/SparseBooleanArray.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/core/java/android/util/SparseBooleanArray.java b/core/java/android/util/SparseBooleanArray.java
index d4c40954bdd1..03fa1c996027 100644
--- a/core/java/android/util/SparseBooleanArray.java
+++ b/core/java/android/util/SparseBooleanArray.java
@@ -16,10 +16,11 @@
package android.util;
+import android.annotation.UnsupportedAppUsage;
+
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.GrowingArrayUtils;
-import android.annotation.UnsupportedAppUsage;
import libcore.util.EmptyArray;
/**
@@ -167,6 +168,10 @@ public class SparseBooleanArray implements Cloneable {
* key.</p>
*/
public int keyAt(int index) {
+ if (index >= mSize) {
+ // The array might be slightly bigger than mSize, in which case, indexing won't fail.
+ throw new ArrayIndexOutOfBoundsException(index);
+ }
return mKeys[index];
}
@@ -182,6 +187,10 @@ public class SparseBooleanArray implements Cloneable {
* associated with the largest key.</p>
*/
public boolean valueAt(int index) {
+ if (index >= mSize) {
+ // The array might be slightly bigger than mSize, in which case, indexing won't fail.
+ throw new ArrayIndexOutOfBoundsException(index);
+ }
return mValues[index];
}
@@ -189,11 +198,19 @@ public class SparseBooleanArray implements Cloneable {
* Directly set the value at a particular index.
*/
public void setValueAt(int index, boolean value) {
+ if (index >= mSize) {
+ // The array might be slightly bigger than mSize, in which case, indexing won't fail.
+ throw new ArrayIndexOutOfBoundsException(index);
+ }
mValues[index] = value;
}
/** @hide */
public void setKeyAt(int index, int key) {
+ if (index >= mSize) {
+ // The array might be slightly bigger than mSize, in which case, indexing won't fail.
+ throw new ArrayIndexOutOfBoundsException(index);
+ }
mKeys[index] = key;
}