Loading core/java/android/content/pm/PackageParser.java +2 −2 Original line number Diff line number Diff line Loading @@ -2689,9 +2689,9 @@ public class PackageParser { certSha256 = certSha256.replace(":", "").toLowerCase(); pkg.usesStaticLibraries = ArrayUtils.add(pkg.usesStaticLibraries, lname); pkg.usesStaticLibrariesVersions = ArrayUtils.appendInt( pkg.usesStaticLibrariesVersions, version); pkg.usesStaticLibrariesVersions, version, true); pkg.usesStaticLibrariesCertDigests = ArrayUtils.appendElement(String.class, pkg.usesStaticLibrariesCertDigests, certSha256); pkg.usesStaticLibrariesCertDigests, certSha256, true); XmlUtils.skipCurrentTag(parser); Loading core/java/com/android/internal/util/ArrayUtils.java +26 −7 Original line number Diff line number Diff line Loading @@ -260,10 +260,19 @@ public class ArrayUtils { */ @SuppressWarnings("unchecked") public static @NonNull <T> T[] appendElement(Class<T> kind, @Nullable T[] array, T element) { return appendElement(kind, array, element, false); } /** * Adds value to given array. */ @SuppressWarnings("unchecked") public static @NonNull <T> T[] appendElement(Class<T> kind, @Nullable T[] array, T element, boolean allowDuplicates) { final T[] result; final int end; if (array != null) { if (contains(array, element)) return array; if (!allowDuplicates && contains(array, element)) return array; end = array.length; result = (T[])Array.newInstance(kind, end + 1); System.arraycopy(array, 0, result, 0, end); Loading Loading @@ -299,25 +308,35 @@ public class ArrayUtils { } /** * Adds value to given array if not already present, providing set-like * behavior. * Adds value to given array. */ public static @NonNull int[] appendInt(@Nullable int[] cur, int val) { public static @NonNull int[] appendInt(@Nullable int[] cur, int val, boolean allowDuplicates) { if (cur == null) { return new int[] { val }; } final int N = cur.length; if (!allowDuplicates) { for (int i = 0; i < N; i++) { if (cur[i] == val) { return cur; } } } int[] ret = new int[N + 1]; System.arraycopy(cur, 0, ret, 0, N); ret[N] = val; return ret; } /** * Adds value to given array if not already present, providing set-like * behavior. */ public static @NonNull int[] appendInt(@Nullable int[] cur, int val) { return appendInt(cur, val, false); } /** * Removes value from given array if present, providing set-like behavior. */ Loading Loading
core/java/android/content/pm/PackageParser.java +2 −2 Original line number Diff line number Diff line Loading @@ -2689,9 +2689,9 @@ public class PackageParser { certSha256 = certSha256.replace(":", "").toLowerCase(); pkg.usesStaticLibraries = ArrayUtils.add(pkg.usesStaticLibraries, lname); pkg.usesStaticLibrariesVersions = ArrayUtils.appendInt( pkg.usesStaticLibrariesVersions, version); pkg.usesStaticLibrariesVersions, version, true); pkg.usesStaticLibrariesCertDigests = ArrayUtils.appendElement(String.class, pkg.usesStaticLibrariesCertDigests, certSha256); pkg.usesStaticLibrariesCertDigests, certSha256, true); XmlUtils.skipCurrentTag(parser); Loading
core/java/com/android/internal/util/ArrayUtils.java +26 −7 Original line number Diff line number Diff line Loading @@ -260,10 +260,19 @@ public class ArrayUtils { */ @SuppressWarnings("unchecked") public static @NonNull <T> T[] appendElement(Class<T> kind, @Nullable T[] array, T element) { return appendElement(kind, array, element, false); } /** * Adds value to given array. */ @SuppressWarnings("unchecked") public static @NonNull <T> T[] appendElement(Class<T> kind, @Nullable T[] array, T element, boolean allowDuplicates) { final T[] result; final int end; if (array != null) { if (contains(array, element)) return array; if (!allowDuplicates && contains(array, element)) return array; end = array.length; result = (T[])Array.newInstance(kind, end + 1); System.arraycopy(array, 0, result, 0, end); Loading Loading @@ -299,25 +308,35 @@ public class ArrayUtils { } /** * Adds value to given array if not already present, providing set-like * behavior. * Adds value to given array. */ public static @NonNull int[] appendInt(@Nullable int[] cur, int val) { public static @NonNull int[] appendInt(@Nullable int[] cur, int val, boolean allowDuplicates) { if (cur == null) { return new int[] { val }; } final int N = cur.length; if (!allowDuplicates) { for (int i = 0; i < N; i++) { if (cur[i] == val) { return cur; } } } int[] ret = new int[N + 1]; System.arraycopy(cur, 0, ret, 0, N); ret[N] = val; return ret; } /** * Adds value to given array if not already present, providing set-like * behavior. */ public static @NonNull int[] appendInt(@Nullable int[] cur, int val) { return appendInt(cur, val, false); } /** * Removes value from given array if present, providing set-like behavior. */ Loading