Fix a potential memory crash for layer debug highlighting
Move local variable to the outer scope as its pointer is used inside the vector declared in this scope.
Bug: 184392945
Test: setprop debug.sf.layer_caching_highlight property
Change-Id: I9dc8ff16e0b9aa78138141e7abeee600cc8280f0
diff --git a/services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp b/services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp
index f58addb..5516905 100644
--- a/services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp
+++ b/services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp
@@ -178,6 +178,7 @@
};
std::vector<renderengine::LayerSettings> layerSettings;
+ renderengine::LayerSettings highlight;
for (const auto& layer : mLayers) {
const auto clientCompositionList =
layer.getState()->getOutputLayer()->getLayerFE().prepareClientCompositionList(
@@ -192,7 +193,7 @@
[](const renderengine::LayerSettings& settings) { return &settings; });
if (sDebugHighlighLayers) {
- renderengine::LayerSettings highlight{
+ highlight = {
.geometry =
renderengine::Geometry{
.boundaries = FloatRect(0.0f, 0.0f,