From edaa9132971bd427553acdd35c8b42ee17594bf0 Mon Sep 17 00:00:00 2001 From: Josh Chien Date: Fri, 4 Dec 2020 18:30:46 +0800 Subject: Fix dumpsys SurfaceFlinger --frame-events MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The function “dumpFrameEventsLocked” use incorrect method to traverse layer hierarchy. Bug: 176133025 Test: adb shell dumpsys SurfaceFlinger --frame-events Change-Id: I27431cca559121ac0ed1ae1e1685872516ff2092 --- services/surfaceflinger/SurfaceFlinger.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 6862e622e9..f96814cdb7 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -4502,12 +4502,9 @@ void SurfaceFlinger::recordBufferingStats(const std::string& layerName, void SurfaceFlinger::dumpFrameEventsLocked(std::string& result) { result.append("Layer frame timestamps:\n"); - - const LayerVector& currentLayers = mCurrentState.layersSortedByZ; - const size_t count = currentLayers.size(); - for (size_t i=0 ; idumpFrameEvents(result); - } + // Traverse all layers to dump frame-events for each layer + mCurrentState.traverseInZOrder( + [&] (Layer* layer) { layer->dumpFrameEvents(result); }); } void SurfaceFlinger::dumpBufferingStats(std::string& result) const { -- cgit v1.2.3-59-g8ed1b