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

Commit 7f9b899c authored by Robert Carr's avatar Robert Carr
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
parent 99295a2b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2537,6 +2537,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
@@ -2308,6 +2308,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);