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

Commit d09a4081 authored by Jan Kowal's avatar Jan Kowal Committed by Tomasz Wasilczyk
Browse files

Fix for android.hardware.radio.Utils.createIntSet

Previous solution was assymetric: writeInt vs readTypedObject.

Also, specify the initial capacity to avoid unnecessary reallocations.

Bug: 117113131
Test: atest BroadcastRadioTests
Change-Id: Ib33b97d482422b1acac8e9420a0c974bcd59355b
parent 31bbb473
Loading
Loading
Loading
Loading
+9 −12
Original line number Diff line number Diff line
@@ -47,7 +47,7 @@ final class Utils {

    static @NonNull Map<String, String> readStringMap(@NonNull Parcel in) {
        int size = in.readInt();
        Map<String, String> map = new HashMap<>();
        Map<String, String> map = new HashMap<>(size);
        while (size-- > 0) {
            String key = in.readString();
            String value = in.readString();
@@ -70,7 +70,7 @@ final class Utils {

    static @NonNull Map<String, Integer> readStringIntMap(@NonNull Parcel in) {
        int size = in.readInt();
        Map<String, Integer> map = new HashMap<>();
        Map<String, Integer> map = new HashMap<>(size);
        while (size-- > 0) {
            String key = in.readString();
            int value = in.readInt();
@@ -90,7 +90,7 @@ final class Utils {

    static <T> Set<T> createSet(@NonNull Parcel in, Parcelable.Creator<T> c) {
        int size = in.readInt();
        Set<T> set = new HashSet<>();
        Set<T> set = new HashSet<>(size);
        while (size-- > 0) {
            set.add(in.readTypedObject(c));
        }
@@ -107,15 +107,12 @@ final class Utils {
    }

    static Set<Integer> createIntSet(@NonNull Parcel in) {
        return createSet(in, new Parcelable.Creator<Integer>() {
            public Integer createFromParcel(Parcel in) {
                return in.readInt();
            }

            public Integer[] newArray(int size) {
                return new Integer[size];
        int size = in.readInt();
        Set<Integer> set = new HashSet<>(size);
        while (size-- > 0) {
            set.add(in.readInt());
        }
        });
        return set;
    }

    static <T extends Parcelable> void writeTypedCollection(@NonNull Parcel dest,