diff options
author | 2021-12-13 19:14:39 +0000 | |
---|---|---|
committer | 2021-12-13 19:14:39 +0000 | |
commit | eb05acaa43693a58ae35558a679fd971ab59d5cf (patch) | |
tree | 602c1aeb59d4a7802724a92452befcdc7aa075e6 | |
parent | 26a735ae0f606db67f1a623cd42a644ea902747b (diff) | |
parent | 8a3ab3aadc2b54e140dac4c0e5eb389ffe2e5fc3 (diff) |
Merge "binder_ndk: fix read/write interface"
-rw-r--r-- | libs/binder/ndk/include_cpp/android/binder_parcel_utils.h | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/libs/binder/ndk/include_cpp/android/binder_parcel_utils.h b/libs/binder/ndk/include_cpp/android/binder_parcel_utils.h index c1487c0bd2..e5560f8ef5 100644 --- a/libs/binder/ndk/include_cpp/android/binder_parcel_utils.h +++ b/libs/binder/ndk/include_cpp/android/binder_parcel_utils.h @@ -482,9 +482,7 @@ static inline binder_status_t AParcel_readVector( template <typename P> static inline binder_status_t AParcel_writeParcelable(AParcel* parcel, const P& p) { if constexpr (is_interface_v<P>) { - if (!p) { - return STATUS_UNEXPECTED_NULL; - } + // Legacy behavior: allow null return first_template_type_t<P>::writeToParcel(parcel, p); } else { static_assert(is_parcelable_v<P>); @@ -502,13 +500,8 @@ static inline binder_status_t AParcel_writeParcelable(AParcel* parcel, const P& template <typename P> static inline binder_status_t AParcel_readParcelable(const AParcel* parcel, P* p) { if constexpr (is_interface_v<P>) { - binder_status_t status = first_template_type_t<P>::readFromParcel(parcel, p); - if (status == STATUS_OK) { - if (!*p) { - return STATUS_UNEXPECTED_NULL; - } - } - return status; + // Legacy behavior: allow null + return first_template_type_t<P>::readFromParcel(parcel, p); } else { static_assert(is_parcelable_v<P>); int32_t null; |