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

Commit f918f617 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add copy assignment operator for ParcelableHolder"

parents ad7f7f78 5a5edf1c
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;