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
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 7dc2cab..33f435e 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -2537,6 +2537,8 @@
}
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);