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

Commit af5fc3ca authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "binder_ndk: fix read/write interface" am: eb05acaa

Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1900588

Change-Id: I67a05a55a122341a7c33d3eefdcc436d94e29a15
parents bd26e59d eb05acaa
Loading
Loading
Loading
Loading
+3 −10
Original line number Original line Diff line number Diff line
@@ -482,9 +482,7 @@ static inline binder_status_t AParcel_readVector(
template <typename P>
template <typename P>
static inline binder_status_t AParcel_writeParcelable(AParcel* parcel, const P& p) {
static inline binder_status_t AParcel_writeParcelable(AParcel* parcel, const P& p) {
    if constexpr (is_interface_v<P>) {
    if constexpr (is_interface_v<P>) {
        if (!p) {
        // Legacy behavior: allow null
            return STATUS_UNEXPECTED_NULL;
        }
        return first_template_type_t<P>::writeToParcel(parcel, p);
        return first_template_type_t<P>::writeToParcel(parcel, p);
    } else {
    } else {
        static_assert(is_parcelable_v<P>);
        static_assert(is_parcelable_v<P>);
@@ -502,13 +500,8 @@ static inline binder_status_t AParcel_writeParcelable(AParcel* parcel, const P&
template <typename P>
template <typename P>
static inline binder_status_t AParcel_readParcelable(const AParcel* parcel, P* p) {
static inline binder_status_t AParcel_readParcelable(const AParcel* parcel, P* p) {
    if constexpr (is_interface_v<P>) {
    if constexpr (is_interface_v<P>) {
        binder_status_t status = first_template_type_t<P>::readFromParcel(parcel, p);
        // Legacy behavior: allow null
        if (status == STATUS_OK) {
        return first_template_type_t<P>::readFromParcel(parcel, p);
            if (!*p) {
                return STATUS_UNEXPECTED_NULL;
            }
        }
        return status;
    } else {
    } else {
        static_assert(is_parcelable_v<P>);
        static_assert(is_parcelable_v<P>);
        int32_t null;
        int32_t null;