summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2020-12-17 10:29:32 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-12-17 10:29:32 +0000
commitacd5ae1807e77b6c267c139391b7dd82657bb6ea (patch)
tree13c32d80ea7bb29615d5d68c32c5fd1803f1fe96 /core/java
parent3434bcd0277344923f514e1e23bbd2efd0925370 (diff)
parentf35963cb77cba1658e04cbb3787746df57d2e6c9 (diff)
Merge "Make a copy of libcore.util.ArraysUtils in framework" am: f35963cb77
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1531681 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: Ia74bb76418cbed901535af0fafe1e2e03423806e
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/content/pm/LimitedLengthInputStream.java2
-rw-r--r--core/java/android/os/FileBridge.java3
-rw-r--r--core/java/android/os/Parcel.java3
-rw-r--r--core/java/com/android/internal/util/ArrayUtils.java19
4 files changed, 24 insertions, 3 deletions
diff --git a/core/java/android/content/pm/LimitedLengthInputStream.java b/core/java/android/content/pm/LimitedLengthInputStream.java
index 19b681e4373a..05089f6e0165 100644
--- a/core/java/android/content/pm/LimitedLengthInputStream.java
+++ b/core/java/android/content/pm/LimitedLengthInputStream.java
@@ -1,6 +1,6 @@
package android.content.pm;
-import libcore.util.ArrayUtils;
+import com.android.internal.util.ArrayUtils;
import java.io.FilterInputStream;
import java.io.IOException;
diff --git a/core/java/android/os/FileBridge.java b/core/java/android/os/FileBridge.java
index ab5637cbb878..7b84575a8955 100644
--- a/core/java/android/os/FileBridge.java
+++ b/core/java/android/os/FileBridge.java
@@ -22,11 +22,12 @@ import android.system.ErrnoException;
import android.system.Os;
import android.util.Log;
+import com.android.internal.util.ArrayUtils;
+
import libcore.io.IoBridge;
import libcore.io.IoUtils;
import libcore.io.Memory;
import libcore.io.Streams;
-import libcore.util.ArrayUtils;
import java.io.FileDescriptor;
import java.io.IOException;
diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java
index cf90174924f1..6acdcc4722d2 100644
--- a/core/java/android/os/Parcel.java
+++ b/core/java/android/os/Parcel.java
@@ -33,11 +33,12 @@ import android.util.SparseArray;
import android.util.SparseBooleanArray;
import android.util.SparseIntArray;
+import com.android.internal.util.ArrayUtils;
+
import dalvik.annotation.optimization.CriticalNative;
import dalvik.annotation.optimization.FastNative;
import dalvik.system.VMRuntime;
-import libcore.util.ArrayUtils;
import libcore.util.SneakyThrow;
import java.io.ByteArrayInputStream;
diff --git a/core/java/com/android/internal/util/ArrayUtils.java b/core/java/com/android/internal/util/ArrayUtils.java
index 9ad15021f651..931ec64df755 100644
--- a/core/java/com/android/internal/util/ArrayUtils.java
+++ b/core/java/com/android/internal/util/ArrayUtils.java
@@ -734,6 +734,25 @@ public class ArrayUtils {
}
/**
+ * Throws {@link ArrayIndexOutOfBoundsException} if the range is out of bounds.
+ * @param len length of the array. Must be non-negative
+ * @param offset start index of the range. Must be non-negative
+ * @param count length of the range. Must be non-negative
+ * @throws ArrayIndexOutOfBoundsException if the range from {@code offset} with length
+ * {@code count} is out of bounds of the array
+ */
+ public static void throwsIfOutOfBounds(int len, int offset, int count) {
+ if (len < 0) {
+ throw new ArrayIndexOutOfBoundsException("Negative length: " + len);
+ }
+
+ if ((offset | count) < 0 || offset > len - count) {
+ throw new ArrayIndexOutOfBoundsException(
+ "length=" + len + "; regionStart=" + offset + "; regionLength=" + count);
+ }
+ }
+
+ /**
* Returns an array with values from {@code val} minus {@code null} values
*
* @param arrayConstructor typically {@code T[]::new} e.g. {@code String[]::new}