Merge "SurfaceFlinger: Fix layer creation race"
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index c4165e7..cc93db3 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -3572,15 +3572,16 @@
return NO_MEMORY;
}
+ layer->updateTransformHint(mActiveDisplayTransformHint);
+ if (outTransformHint) {
+ *outTransformHint = mActiveDisplayTransformHint;
+ }
+
{
std::scoped_lock<std::mutex> lock(mCreatedLayersLock);
mCreatedLayers.emplace_back(layer, parent, addToRoot);
}
- layer->updateTransformHint(mActiveDisplayTransformHint);
- if (outTransformHint) {
- *outTransformHint = mActiveDisplayTransformHint;
- }
// attach this layer to the client
if (client != nullptr) {
client->attachLayer(handle, layer);