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

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

Merge "Add copy assignment operator for ParcelableHolder" am: f918f617 am:...

Merge "Add copy assignment operator for ParcelableHolder" am: f918f617 am: 19cb4237 am: 37e296a4 am: 6f01488d

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



Change-Id: Ie804795a650c525187f0b80d1b666e8b688a42c5
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents c14fadce 6f01488d
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -58,6 +58,9 @@ class AParcelableHolder {
#endif
            AParcel_appendFrom(other.mParcel.get(), this->mParcel.get(), 0,
                               AParcel_getDataSize(other.mParcel.get()));
        } else {
            syslog(LOG_ERR,
                   "sdk_version not compatible, AParcelableHolder need sdk_version >= 31!");
        }
    }
#endif
@@ -192,6 +195,9 @@ class AParcelableHolder {
        if (__ANDROID_API__ >= 31) {
#endif
            AParcel_reset(mParcel.get());
        } else {
            syslog(LOG_ERR,
                   "sdk_version not compatible, AParcelableHolder need sdk_version >= 31!");
        }
    }

@@ -201,6 +207,29 @@ class AParcelableHolder {
    inline bool operator==(const AParcelableHolder& rhs) const { return this == &rhs; }
    inline bool operator>(const AParcelableHolder& rhs) const { return this > &rhs; }
    inline bool operator>=(const AParcelableHolder& rhs) const { return this >= &rhs; }
#if __ANDROID_API__ >= 31
    inline AParcelableHolder& operator=(const AParcelableHolder& rhs) {
        // AParcelableHolder has been introduced in 31.
#ifdef __ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__
        if (__builtin_available(android 31, *)) {
#else
        if (__ANDROID_API__ >= 31) {
#endif
            this->reset();
            if (this->mStability != rhs.mStability) {
                syslog(LOG_ERR, "AParcelableHolder stability mismatch: this %d rhs %d!",
                       this->mStability, rhs.mStability);
                abort();
            }
            AParcel_appendFrom(rhs.mParcel.get(), this->mParcel.get(), 0,
                               AParcel_getDataSize(rhs.mParcel.get()));
        } else {
            syslog(LOG_ERR,
                   "sdk_version not compatible, AParcelableHolder need sdk_version >= 31!");
        }
        return *this;
    }
#endif

   private:
    mutable ndk::ScopedAParcel mParcel;