summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jeongik Cha <jeongik@google.com> 2021-12-15 02:08:17 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2021-12-15 02:08:17 +0000
commitba87e1a1de232815e72b59b90a3a406725e15fc5 (patch)
tree2dadec8ac16b20bbfdc946a61c35a5c6d5fb5182
parent6e7f072d8a660d3cebde24b46d32041ee16b866c (diff)
parent4e243f3abb3d92c3bc31723db5fb3dc0f86ddb0f (diff)
Merge "Add copy ctor for ParcelableHolder"
-rw-r--r--libs/binder/ndk/include_cpp/android/binder_parcelable_utils.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/libs/binder/ndk/include_cpp/android/binder_parcelable_utils.h b/libs/binder/ndk/include_cpp/android/binder_parcelable_utils.h
index aa3b97806b..972eca79ff 100644
--- a/libs/binder/ndk/include_cpp/android/binder_parcelable_utils.h
+++ b/libs/binder/ndk/include_cpp/android/binder_parcelable_utils.h
@@ -46,6 +46,18 @@ class AParcelableHolder {
AParcelableHolder() = delete;
explicit AParcelableHolder(parcelable_stability_t stability)
: mParcel(AParcel_create()), mStability(stability) {}
+
+#if __ANDROID_API__ >= 31
+ AParcelableHolder(const AParcelableHolder& other)
+ : mParcel(AParcel_create()), mStability(other.mStability) {
+ // AParcelableHolder has been introduced in 31.
+ if (__builtin_available(android 31, *)) {
+ AParcel_appendFrom(other.mParcel.get(), this->mParcel.get(), 0,
+ AParcel_getDataSize(other.mParcel.get()));
+ }
+ }
+#endif
+
AParcelableHolder(AParcelableHolder&& other) = default;
virtual ~AParcelableHolder() = default;