Loading libs/binder/ndk/include_cpp/android/binder_auto_utils.h +7 −4 Original line number Diff line number Diff line Loading @@ -259,11 +259,14 @@ class ScopedAStatus : public impl::ScopedAResource<AStatus*, AStatus_delete, nul const char* getMessage() const { return AStatus_getMessage(get()); } std::string getDescription() const { if (__builtin_available(android 30, *)) { const char* cStr = AStatus_getDescription(get()); std::string ret = cStr; AStatus_deleteDescription(cStr); return ret; } return "(not available)"; } /** * Convenience methods for creating scoped statuses. Loading libs/binder/ndk/include_cpp/android/binder_interface_utils.h +1 −1 Original line number Diff line number Diff line Loading @@ -247,7 +247,7 @@ AIBinder_Class* ICInterface::defineClass(const char* interfaceDescriptor, // ourselves. The defaults are harmless. AIBinder_Class_setOnDump(clazz, ICInterfaceData::onDump); #ifdef HAS_BINDER_SHELL_COMMAND if (AIBinder_Class_setHandleShellCommand != nullptr) { if (__builtin_available(android 30, *)) { AIBinder_Class_setHandleShellCommand(clazz, ICInterfaceData::handleShellCommand); } #endif Loading libs/binder/ndk/include_cpp/android/binder_parcelable_utils.h +39 −10 Original line number Diff line number Diff line Loading @@ -51,14 +51,27 @@ class AParcelableHolder { binder_status_t writeToParcel(AParcel* parcel) const { RETURN_ON_FAILURE(AParcel_writeInt32(parcel, static_cast<int32_t>(this->mStability))); RETURN_ON_FAILURE(AParcel_writeInt32(parcel, AParcel_getDataSize(this->mParcel.get()))); RETURN_ON_FAILURE(AParcel_appendFrom(this->mParcel.get(), parcel, 0, AParcel_getDataSize(this->mParcel.get()))); if (__builtin_available(android 31, *)) { int32_t size = AParcel_getDataSize(this->mParcel.get()); RETURN_ON_FAILURE(AParcel_writeInt32(parcel, size)); } else { return STATUS_INVALID_OPERATION; } if (__builtin_available(android 31, *)) { int32_t size = AParcel_getDataSize(this->mParcel.get()); RETURN_ON_FAILURE(AParcel_appendFrom(this->mParcel.get(), parcel, 0, size)); } else { return STATUS_INVALID_OPERATION; } return STATUS_OK; } binder_status_t readFromParcel(const AParcel* parcel) { if (__builtin_available(android 31, *)) { AParcel_reset(mParcel.get()); } else { return STATUS_INVALID_OPERATION; } RETURN_ON_FAILURE(AParcel_readInt32(parcel, &this->mStability)); int32_t dataSize; Loading @@ -74,7 +87,11 @@ class AParcelableHolder { return STATUS_BAD_VALUE; } if (__builtin_available(android 31, *)) { status = AParcel_appendFrom(parcel, mParcel.get(), dataStartPos, dataSize); } else { status = STATUS_INVALID_OPERATION; } if (status != STATUS_OK) { return status; } Loading @@ -86,7 +103,11 @@ class AParcelableHolder { if (this->mStability > T::_aidl_stability) { return STATUS_BAD_VALUE; } if (__builtin_available(android 31, *)) { AParcel_reset(mParcel.get()); } else { return STATUS_INVALID_OPERATION; } AParcel_writeString(mParcel.get(), T::descriptor, strlen(T::descriptor)); p.writeToParcel(mParcel.get()); return STATUS_OK; Loading @@ -96,10 +117,14 @@ class AParcelableHolder { binder_status_t getParcelable(std::optional<T>* ret) const { const std::string parcelableDesc(T::descriptor); AParcel_setDataPosition(mParcel.get(), 0); if (__builtin_available(android 31, *)) { if (AParcel_getDataSize(mParcel.get()) == 0) { *ret = std::nullopt; return STATUS_OK; } } else { return STATUS_INVALID_OPERATION; } std::string parcelableDescInParcel; binder_status_t status = AParcel_readString(mParcel.get(), &parcelableDescInParcel); if (status != STATUS_OK || parcelableDesc != parcelableDescInParcel) { Loading @@ -115,7 +140,11 @@ class AParcelableHolder { return STATUS_OK; } void reset() { AParcel_reset(mParcel.get()); } void reset() { if (__builtin_available(android 31, *)) { AParcel_reset(mParcel.get()); } } inline bool operator!=(const AParcelableHolder& rhs) const { return this != &rhs; } inline bool operator<(const AParcelableHolder& rhs) const { return this < &rhs; } Loading libs/binder/ndk/include_ndk/android/binder_parcel.h +0 −2 Original line number Diff line number Diff line Loading @@ -1120,7 +1120,6 @@ binder_status_t AParcel_readByteArray(const AParcel* parcel, void* arrayData, // @END-PRIMITIVE-READ-WRITE #endif //__ANDROID_API__ >= 29 #if __ANDROID_API__ >= 31 /** * Reset the parcel to the initial status. * Loading Loading @@ -1166,7 +1165,6 @@ binder_status_t AParcel_appendFrom(const AParcel* from, AParcel* to, int32_t sta * \return A parcel which is not related to any IBinder objects. */ AParcel* AParcel_create() __INTRODUCED_IN(31); #endif //__ANDROID_API__ >= 31 __END_DECLS /** @} */ Loading
libs/binder/ndk/include_cpp/android/binder_auto_utils.h +7 −4 Original line number Diff line number Diff line Loading @@ -259,11 +259,14 @@ class ScopedAStatus : public impl::ScopedAResource<AStatus*, AStatus_delete, nul const char* getMessage() const { return AStatus_getMessage(get()); } std::string getDescription() const { if (__builtin_available(android 30, *)) { const char* cStr = AStatus_getDescription(get()); std::string ret = cStr; AStatus_deleteDescription(cStr); return ret; } return "(not available)"; } /** * Convenience methods for creating scoped statuses. Loading
libs/binder/ndk/include_cpp/android/binder_interface_utils.h +1 −1 Original line number Diff line number Diff line Loading @@ -247,7 +247,7 @@ AIBinder_Class* ICInterface::defineClass(const char* interfaceDescriptor, // ourselves. The defaults are harmless. AIBinder_Class_setOnDump(clazz, ICInterfaceData::onDump); #ifdef HAS_BINDER_SHELL_COMMAND if (AIBinder_Class_setHandleShellCommand != nullptr) { if (__builtin_available(android 30, *)) { AIBinder_Class_setHandleShellCommand(clazz, ICInterfaceData::handleShellCommand); } #endif Loading
libs/binder/ndk/include_cpp/android/binder_parcelable_utils.h +39 −10 Original line number Diff line number Diff line Loading @@ -51,14 +51,27 @@ class AParcelableHolder { binder_status_t writeToParcel(AParcel* parcel) const { RETURN_ON_FAILURE(AParcel_writeInt32(parcel, static_cast<int32_t>(this->mStability))); RETURN_ON_FAILURE(AParcel_writeInt32(parcel, AParcel_getDataSize(this->mParcel.get()))); RETURN_ON_FAILURE(AParcel_appendFrom(this->mParcel.get(), parcel, 0, AParcel_getDataSize(this->mParcel.get()))); if (__builtin_available(android 31, *)) { int32_t size = AParcel_getDataSize(this->mParcel.get()); RETURN_ON_FAILURE(AParcel_writeInt32(parcel, size)); } else { return STATUS_INVALID_OPERATION; } if (__builtin_available(android 31, *)) { int32_t size = AParcel_getDataSize(this->mParcel.get()); RETURN_ON_FAILURE(AParcel_appendFrom(this->mParcel.get(), parcel, 0, size)); } else { return STATUS_INVALID_OPERATION; } return STATUS_OK; } binder_status_t readFromParcel(const AParcel* parcel) { if (__builtin_available(android 31, *)) { AParcel_reset(mParcel.get()); } else { return STATUS_INVALID_OPERATION; } RETURN_ON_FAILURE(AParcel_readInt32(parcel, &this->mStability)); int32_t dataSize; Loading @@ -74,7 +87,11 @@ class AParcelableHolder { return STATUS_BAD_VALUE; } if (__builtin_available(android 31, *)) { status = AParcel_appendFrom(parcel, mParcel.get(), dataStartPos, dataSize); } else { status = STATUS_INVALID_OPERATION; } if (status != STATUS_OK) { return status; } Loading @@ -86,7 +103,11 @@ class AParcelableHolder { if (this->mStability > T::_aidl_stability) { return STATUS_BAD_VALUE; } if (__builtin_available(android 31, *)) { AParcel_reset(mParcel.get()); } else { return STATUS_INVALID_OPERATION; } AParcel_writeString(mParcel.get(), T::descriptor, strlen(T::descriptor)); p.writeToParcel(mParcel.get()); return STATUS_OK; Loading @@ -96,10 +117,14 @@ class AParcelableHolder { binder_status_t getParcelable(std::optional<T>* ret) const { const std::string parcelableDesc(T::descriptor); AParcel_setDataPosition(mParcel.get(), 0); if (__builtin_available(android 31, *)) { if (AParcel_getDataSize(mParcel.get()) == 0) { *ret = std::nullopt; return STATUS_OK; } } else { return STATUS_INVALID_OPERATION; } std::string parcelableDescInParcel; binder_status_t status = AParcel_readString(mParcel.get(), &parcelableDescInParcel); if (status != STATUS_OK || parcelableDesc != parcelableDescInParcel) { Loading @@ -115,7 +140,11 @@ class AParcelableHolder { return STATUS_OK; } void reset() { AParcel_reset(mParcel.get()); } void reset() { if (__builtin_available(android 31, *)) { AParcel_reset(mParcel.get()); } } inline bool operator!=(const AParcelableHolder& rhs) const { return this != &rhs; } inline bool operator<(const AParcelableHolder& rhs) const { return this < &rhs; } Loading
libs/binder/ndk/include_ndk/android/binder_parcel.h +0 −2 Original line number Diff line number Diff line Loading @@ -1120,7 +1120,6 @@ binder_status_t AParcel_readByteArray(const AParcel* parcel, void* arrayData, // @END-PRIMITIVE-READ-WRITE #endif //__ANDROID_API__ >= 29 #if __ANDROID_API__ >= 31 /** * Reset the parcel to the initial status. * Loading Loading @@ -1166,7 +1165,6 @@ binder_status_t AParcel_appendFrom(const AParcel* from, AParcel* to, int32_t sta * \return A parcel which is not related to any IBinder objects. */ AParcel* AParcel_create() __INTRODUCED_IN(31); #endif //__ANDROID_API__ >= 31 __END_DECLS /** @} */