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

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

Merge "Remove the lock in ParcelableHolder"

parents 1b7f7628 0b8f647e
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@
namespace android {
namespace os {
status_t ParcelableHolder::writeToParcel(Parcel* p) const {
    std::lock_guard<std::mutex> l(mMutex);
    RETURN_ON_FAILURE(p->writeInt32(static_cast<int32_t>(this->getStability())));
    if (this->mParcelPtr) {
        RETURN_ON_FAILURE(p->writeInt32(this->mParcelPtr->dataSize()));
@@ -53,7 +52,6 @@ status_t ParcelableHolder::writeToParcel(Parcel* p) const {
}

status_t ParcelableHolder::readFromParcel(const Parcel* p) {
    std::lock_guard<std::mutex> l(mMutex);
    this->mStability = static_cast<Stability>(p->readInt32());
    this->mParcelable = nullptr;
    this->mParcelableName = std::nullopt;
+0 −3
Original line number Diff line number Diff line
@@ -59,7 +59,6 @@ public:

    template <typename T>
    bool setParcelable(std::shared_ptr<T> p) {
        std::lock_guard<std::mutex> l(mMutex);
        static_assert(std::is_base_of<Parcelable, T>::value, "T must be derived from Parcelable");
        if (p && this->getStability() > p->getStability()) {
            return false;
@@ -73,7 +72,6 @@ public:
    template <typename T>
    std::shared_ptr<T> getParcelable() const {
        static_assert(std::is_base_of<Parcelable, T>::value, "T must be derived from Parcelable");
        std::lock_guard<std::mutex> l(mMutex);
        const std::string& parcelableDesc = T::getParcelableDescriptor();
        if (!this->mParcelPtr) {
            if (!this->mParcelable || !this->mParcelableName) {
@@ -135,7 +133,6 @@ private:
    mutable std::optional<std::string> mParcelableName;
    mutable std::unique_ptr<Parcel> mParcelPtr;
    Stability mStability;
    mutable std::mutex mMutex;
};
} // namespace os
} // namespace android
+0 −6
Original line number Diff line number Diff line
@@ -50,7 +50,6 @@ class AParcelableHolder {
    virtual ~AParcelableHolder() = default;

    binder_status_t writeToParcel(AParcel* parcel) const {
        std::lock_guard<std::mutex> l(mMutex);
        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,
@@ -59,8 +58,6 @@ class AParcelableHolder {
    }

    binder_status_t readFromParcel(const AParcel* parcel) {
        std::lock_guard<std::mutex> l(mMutex);

        AParcel_reset(mParcel.get());

        RETURN_ON_FAILURE(AParcel_readInt32(parcel, &this->mStability));
@@ -86,7 +83,6 @@ class AParcelableHolder {

    template <typename T>
    bool setParcelable(T* p) {
        std::lock_guard<std::mutex> l(mMutex);
        if (p && this->mStability > T::_aidl_stability) {
            return false;
        }
@@ -98,7 +94,6 @@ class AParcelableHolder {

    template <typename T>
    std::unique_ptr<T> getParcelable() const {
        std::lock_guard<std::mutex> l(mMutex);
        const std::string parcelableDesc(T::descriptor);
        AParcel_setDataPosition(mParcel.get(), 0);
        if (AParcel_getDataSize(mParcel.get()) == 0) {
@@ -119,7 +114,6 @@ class AParcelableHolder {

   private:
    mutable ndk::ScopedAParcel mParcel;
    mutable std::mutex mMutex;
    parcelable_stability_t mStability;
};