[FP4S-472]fix surfaceflinger native crash
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 6cc0737..892a2b8 100755
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -4862,13 +4862,17 @@
state.traverseStatesWithBuffers([&](const layer_state_t& state) {
sp<Layer> layer = fromHandle(state.surface).promote();
if (layer != nullptr) {
- const uint32_t layerStackId = layer->getLayerStack();
SmomoIntf *smoMo = nullptr;
- for (auto &instance: mSmomoInstances) {
- if (instance.layerStackId == layerStackId) {
- smoMo = instance.smoMo;
- break;
+ if (mSmomoInstances.size() > 1) {
+ const uint32_t layerStackId = layer->getLayerStack();
+ for (auto &instance: mSmomoInstances) {
+ if (instance.layerStackId == layerStackId) {
+ smoMo = instance.smoMo;
+ break;
+ }
}
+ }else if (mSmomoInstances.size() == 1) {
+ smoMo = mSmomoInstances[0].smoMo;
}
if (smoMo) {