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

Commit b2b6e6cb authored by Robert Carr's avatar Robert Carr Committed by gitbuildkicker
Browse files

Re-add mistakenly removed lock in SurfaceFlinger::removeLayer.

Lock was mistakenly removed with "Add detachChildren transaction"
when refactoring the weak-pointer to a strong-pointer.

Test: I will try and follow up with a stress-test in Transaction_test.
Bug: 36117490
Change-Id: I94171c86334bb52b974392186e1c3ebbf9f33a05
(cherry picked from commit 7f9b899c)
parent 8a4b9f11
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2546,6 +2546,8 @@ status_t SurfaceFlinger::addClientLayer(const sp<Client>& client,
}

status_t SurfaceFlinger::removeLayer(const sp<Layer>& layer) {
    Mutex::Autolock _l(mStateLock);

    const auto& p = layer->getParent();
    const ssize_t index = (p != nullptr) ? p->removeChild(layer) :
        mCurrentState.layersSortedByZ.remove(layer);
+2 −0
Original line number Diff line number Diff line
@@ -2317,6 +2317,8 @@ status_t SurfaceFlinger::addClientLayer(const sp<Client>& client,
}

status_t SurfaceFlinger::removeLayer(const sp<Layer>& layer) {
    Mutex::Autolock _l(mStateLock);

    const auto& p = layer->getParent();
    const ssize_t index = (p != nullptr) ? p->removeChild(layer) :
             mCurrentState.layersSortedByZ.remove(layer);