SF: Use strong pointers to Layer when moving snapshot
Bug: 258009724
Test: presubmits
Change-Id: Ie5c22a08bf8539a5ea3f8fb9d72bdaa1a1477e91
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index 3478eaa..799d79f 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -3965,14 +3965,17 @@
}
LayerSnapshotGuard::LayerSnapshotGuard(Layer* layer) : mLayer(layer) {
- if (mLayer) {
- mLayer->mLayerFE->mSnapshot = std::move(mLayer->mSnapshot);
- }
+ LOG_ALWAYS_FATAL_IF(!mLayer, "LayerSnapshotGuard received a null layer.");
+ mLayer->mLayerFE->mSnapshot = std::move(mLayer->mSnapshot);
+ LOG_ALWAYS_FATAL_IF(!mLayer->mLayerFE->mSnapshot,
+ "LayerFE snapshot null after taking ownership from layer");
}
LayerSnapshotGuard::~LayerSnapshotGuard() {
if (mLayer) {
mLayer->mSnapshot = std::move(mLayer->mLayerFE->mSnapshot);
+ LOG_ALWAYS_FATAL_IF(!mLayer->mSnapshot,
+ "Layer snapshot null after taking ownership from LayerFE");
}
}