diff options
| -rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 2 | ||||
| -rw-r--r-- | services/surfaceflinger/SurfaceFlinger_hwc1.cpp | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 7dc2cab3d8..33f435ee4e 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -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); diff --git a/services/surfaceflinger/SurfaceFlinger_hwc1.cpp b/services/surfaceflinger/SurfaceFlinger_hwc1.cpp index 683883f3d9..9cffd6eeab 100644 --- a/services/surfaceflinger/SurfaceFlinger_hwc1.cpp +++ b/services/surfaceflinger/SurfaceFlinger_hwc1.cpp @@ -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); |