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

Commit 8d747090 authored by Janis Danisevskis's avatar Janis Danisevskis
Browse files

Add Parcel::writeParcelableVector(std::shared_ptr)

Add support for writing parcelable vectors that are managed
by shared_ptr.

Change-Id: I6944503e7bfe98fa0f4186d7601829ce653f3b1b
parent ae56a32b
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -153,6 +153,8 @@ public:
    template<typename T>
    status_t            writeParcelableVector(const std::unique_ptr<std::vector<std::unique_ptr<T>>>& val);
    template<typename T>
    status_t            writeParcelableVector(const std::shared_ptr<std::vector<std::unique_ptr<T>>>& val);
    template<typename T>
    status_t            writeParcelableVector(const std::vector<T>& val);

    template<typename T>
@@ -776,7 +778,16 @@ status_t Parcel::writeParcelableVector(const std::unique_ptr<std::vector<std::un
        return this->writeInt32(-1);
    }

    return unsafeWriteTypedVector(*val, &Parcel::writeParcelable);
    return unsafeWriteTypedVector(*val, &Parcel::writeNullableParcelable<T>);
}

template<typename T>
status_t Parcel::writeParcelableVector(const std::shared_ptr<std::vector<std::unique_ptr<T>>>& val) {
    if (val.get() == nullptr) {
        return this->writeInt32(-1);
    }

    return unsafeWriteTypedVector(*val, &Parcel::writeNullableParcelable<T>);
}

// ---------------------------------------------------------------------------