diff options
| author | Treehugger Robot <treehugger-gerrit@google.com> | 2020-12-17 10:29:32 +0000 |
|---|---|---|
| committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-12-17 10:29:32 +0000 |
| commit | acd5ae1807e77b6c267c139391b7dd82657bb6ea (patch) | |
| tree | 13c32d80ea7bb29615d5d68c32c5fd1803f1fe96 /core/java | |
| parent | 3434bcd0277344923f514e1e23bbd2efd0925370 (diff) | |
| parent | f35963cb77cba1658e04cbb3787746df57d2e6c9 (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.java | 2 | ||||
| -rw-r--r-- | core/java/android/os/FileBridge.java | 3 | ||||
| -rw-r--r-- | core/java/android/os/Parcel.java | 3 | ||||
| -rw-r--r-- | core/java/com/android/internal/util/ArrayUtils.java | 19 |
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} |
